Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css
Portuguese

Pagetitle

...

StrTokArr

StrTokArr

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

Bloco de código
collapsefalse
StrTokArr( <
cValue>
 cValue >,
< cToken> , [lEmptyStr] ) --> aRet 
 < cToken > )

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

 

...

Retorno

...

Lógico

...

Nome

Tipo

Descrição

aRet

vetor

 

...

Retorna um array de caracteres que representa a string passada como parâmetro.

...

...

Observações

  • Cada caracter de cToken é um separador diferente. Para utilizar uma sequência de caracteres como separador, utilize a função StrTokArr2.
  • Caso seja informado em cValue uma string que contenha uma ou mais ocorrências de caractere

...

  • ASCII 0

...

  • , a string será considerada até o último caractere antes da primeira ocorrência de

...

  • ASCII 0

...

  • .

Exemplos

Bloco de código
themeEclipse
languagecpp
titleExemplo 1
linenumberstrue
collapsefalse
#DEFINE CRLF Chr(13)+Chr(10)

User

user 
Function
function 
Exemplo()
//+----------------------------------------------------------------------------+
//|Exemplifica o uso da função StrTokArr |
//|Depende da função varinfo() do framework do ERP |
//|O resultado com o retorno da função será gerado no log de console |
//+----------------------------------------------------------------------------+
// comportamento default, ignora elementos vazios
varinfo("a1",strtokarr("A," ,",")) //retorna {"A"}
varinfo("a2",strtokarr(",B" ,",")) //retorna {"B"}
varinfo("a3",strtokarr("," ,",")) //retorna {}
varinfo("a4",strtokarr("A,,B" ,",")) //retorna {"A","B"}
varinfo("a5",strtokarr("A,,,B" ,",")) //retorna {"A","B"}
// Comportamento quando informando 3o parametro = .t. 
varinfo("b1",strtokarr("A," ,",",.T.)) //retorna {"A",""}
varinfo("b2",strtokarr(",B" ,",",.T.)) //retorna {"","B"}
varinfo("b3",strtokarr("," ,",",.T.)) //retorna {"",""}
varinfo("b4",strtokarr("A,,B" ,",",.T.)) //retorna {"A","","B"}
varinfo("b5",strtokarr("A,,,B" ,",",.T.)) //retorna {"A","","","B"}
MsgInfo("Verifique o resultado no log de console."
tokarr()
  Local cMessage := "", cValue := ""
  Local nI := 0, nJ := 0
  Local aArray := Array( 6, 2 )
  
  aArray[1][1] := "A1"
  aArray[1][2] := StrTokArr( "A,", "," )
  
  aArray[2][1] := "A2"
  aArray[2][2] := StrTokArr( ",B", "," )
  
  aArray[3][1] := "A3"
  aArray[3][2] := StrTokArr( ",", "," )
  
  aArray[4][1] := "A4"
  aArray[4][2] := StrTokArr( "A,,B", "," )
  
  aArray[5][1] := "A5"
  aArray[5][2] := StrTokArr( "A,,,B", "," )
  
  aArray[6][1] := "A6"
  aArray[6][2] := StrTokArr( "A,B-C", ",-" )
  
  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, "StrTokArr - Exemplo" )
Return

Resultado do Exemplo

...

Image Added

Abrangência

Advanced Protheus 6.09, Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, Protheus 11, Protheus 12

 

 

 

...

Veja também