Convertendo string para array
A função 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.
Strtokarr (expressao, delimitador).
É extremamente útil quando concatenamos uma série de strings e depois queremos organizar num vetor.
1 2 3 4 5 |
cString := "02,03,04,05,06,07,08,09,10,11,12,13" aString := strtokarr (cString, ",") for nString := 1 to len(aString) msgalert(aString[nString]) next |
Outra função interessante é a SEPARA(), pode-se parsear uma string de elementos a partir de um determinado separador , sendo retornado um Array com os elementos identificados na String.
Atenção:
Para realizar a análise de uma string, cujo delimitador tenha apenas 1 byte, e as ocorrências de dois separadores juntos sejam ignoradas na geração do array, a função separa() utiliza a função StrTokArr(), função escrita em C no Protheus Server, mais rápida para este processamento. Apenas existe a necessidade de utilizarmos a função Separa() caso as ocorrências de dois separadores juntas devam ser consideradas no array de resultado e/ou a string utilizada como separador possua mais que 1 byte de tamanho.
Sintaxe
SEPARA ( < cString > , < cToken > , < lEmpty > ) –> aTokens
Parâmetros
Argumento |
Tipo |
Descrição |
cString |
Caracter |
String com a sequência de caracteres a ser “parseada” |
cToken |
Caracter |
cToken corresponde à string a ser utilizada como separador para delimitar as informações. |
lEmpty |
Caracter |
lEmpty identifica se caso um intervalo vazio entre tokens deve ser retornado como um elemento do array. Caso não especificado , o Default é .T.
|
1 2 |
aInfo := Separa('1,2,,4',',',.f.) // Resulta {'1','2','4'} aInfo := Separa('1,2,,4',',',.t.) // Resulta {'1','2','','4'} |
Você precisa fazer log in para comentar.