Nesse vídeo demonstraremos a utilização das funções Separa, StrTokArr e StrTokArr2, que servem para quebrar um texto em um array conforme um delimitador.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe435 Retorna o numero da semana do mês / dia @type Function @author Atilio @since 30/03/2023 @see https://tdn.totvs.com/display/tec/StrTokArr e https://tdn.totvs.com/display/tec/StrTokArr2 @obs Função Separa Parâmetros Recebe a string com separadores Recebe o token para fazer a separação Retorno Array com os elementos separados (considerando posições vazias) Função StrTokArr Parâmetros + cValue , Caractere , Recebe a string com separadores + cToken , Caractere , Recebe o token para fazer a separação Retorno + aRet , Array , Array com os elementos separados conforme parâmetros informados Função StrTokArr2 Parâmetros + cValue , Caractere , Recebe a string com separadores + cToken , Caractere , Recebe o token para fazer a separação + lEmptyStr , Lógico , Define se irá considerar posições vazias Retorno + aRet , Array , Array com os elementos separados conforme parâmetros informados **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe435() Local aArea := FWGetArea() Local cFrase := "" Local cQuebra := "" Local aDadosSep := {} Local aDadosSt1 := {} Local aDadosSt2 := {} Local cMensagem := "" //Define um texto que terá separações e sua respectiva quebra cFrase := "Daniel;João;Maria;;José;" cQuebra := ";" //Aciona os 3 tipos de separações aDadosSep := Separa(cFrase, cQuebra) aDadosSt1 := StrTokArr(cFrase, cQuebra) aDadosSt2 := StrTokArr2(cFrase, cQuebra, .T.) //Monta a mensagem e exibe cMensagem := "Separa deu [" + cValToChar(Len(aDadosSep)) + "] elemento(s)" + CRLF cMensagem += "StrTokArr deu [" + cValToChar(Len(aDadosSt1)) + "] elemento(s)" + CRLF cMensagem += "StrTokArr2 deu [" + cValToChar(Len(aDadosSt2)) + "] elemento(s)" + CRLF FWAlertInfo(cMensagem, "Teste de Separa, StrTokArr e StrTokArr2") FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.