Retorna um array, de acordo com os dados passados como parâmetro à função. Desta forma, a função receberá uma string e uma sequência de um ou mais caracteres, que representa um separador, onde cada porção da string entre separadores será um elemento do array retornado.
Sintaxe
StrTokArr2( < cValue >, < cToken >, [ lEmptyStr ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cValue | caractere | Indica a string que será separada. | X |
|
cToken | caractere | Indica um ou mais caracteres (Token) que serão utilizados como separadores. | X |
|
lEmptyStr | lógico | Indica se elementos vazios também devem ser retornados. Valor default = .F. |
|
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
aRet | vetor | Retorna um array de caracteres que representa a string passada como parâmetro tokenizada pelo separador informado. |
Observações
- A função StrTokArr2 considera a sequência de caracteres informada em cToken como um separador, enquanto a função StrTokArr considera cada caractere informado em <cToken> como um separador.
- A função ignora qualquer ocorrência de ASCII 0 na string informada como parâmetro, podendo ser utilizada para tokenização de strings com caracteres especiais e de controle.
- StrTokArr2 está disponível apenas a partir da build 7.00.131227A com data de geração superior a 08/09/2014, para a versão do Protheus 11. Na versão Protheus 12 a função está disponível a partir da build com data superior a 25/02/2015.
Exemplos
Exemplo 1
#DEFINE CRLF Chr(13)+Chr(10) user function tokarr2() Local cMessage := "", cValue Local nI := 0, nJ := 0 Local aArray := Array( 12, 2 ) aArray[1][1] := "A01" aArray[1][2] := StrTokArr2( "A,", "," ) aArray[2][1] := "A02" aArray[2][2] := StrTokArr2( ",B", "," ) aArray[3][1] := "A03" aArray[3][2] := StrTokArr2( ",", "," ) aArray[4][1] := "A04" aArray[4][2] := StrTokArr2( "A,,B", "," ) aArray[5][1] := "A05" aArray[5][2] := StrTokArr2( "A,,,B", "," ) aArray[6][1] := "A06" aArray[6][2] := StrTokArr2( "ABRACADABRA", "BRA" ) aArray[7][1] := "A11" aArray[7][2] := StrTokArr2( "A,", ",", .T. ) aArray[8][1] := "A12" aArray[8][2] := StrTokArr2( ",B", ",", .T. ) aArray[9][1] := "A13" aArray[9][2] := StrTokArr2( ",", ",", .T. ) aArray[10][1] := "A14" aArray[10][2] := StrTokArr2( "A,,B", ",", .T. ) aArray[11][1] := "A15" aArray[11][2] := StrTokArr2( "A,,,B", ",", .T. ) aArray[12][1] := "A16" aArray[12][2] := StrTokArr2( "ABRACADABRA", "BRA", .T. ) for nI := 1 to Len( aArray ) cMessage += ( aArray[nI][1] + " --- " ) for nJ := 1 to Len( aArray[nI][2] ) cValue := IIf( aArray[nI][2][nJ] == "", '""', aArray[nI][2][nJ] ) cMessage += IIf( nJ == 1, cValue, ", " + cValue ) next nJ cMessage += CRLF next nI return MsgInfo( cMessage, "StrTokArr2 - Exemplo" )
Resultado do Exemplo
Abrangência
Protheus 11, Protheus 12
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas