Á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(
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", 
,
"," )
) //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."

  
  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

...