Como analisar uma string delimitada em uma lista de strings
Roberto Westbrook / Getty Images
Há muitas vezes em que você precisa dividir um corda em um O Delphi fornece vários métodos para analisar uma string, mas você pode descobrir que nenhum deles faz exatamente o que você precisa. Por exemplo, o método RTL ExtractStrings sempre usa caracteres de aspas (simples ou duplas) para delimitadores. Outra abordagem é usar o Delimitador e Texto Delimitado propriedades da classe TStrings—mas infelizmente, há um bug na implementação ('dentro' do Delphi) onde o caractere de espaço é sempre usado como delimitador. A única solução para analisar uma string delimitada é escrever um método próprio: ~~~~~~~~~~~~~~~~~~~~~~~~~~ Uso (preenche Memo1):
Exemplo de string delimitada
procedimento ParseDelimited(const sl : TStrings; valor const : string; delimitador const : string) ;
foi
dx : inteiro;
ns : cadeia;
txt: cadeia;
delta : inteiro;
começar
delta := Comprimento(delimitador);
txt := valor + delimitador;
sl.BeginUpdate;
sl.Limpar;
tentar
enquanto Comprimento(txt) > 0 faça
começar
dx := Pos(delimitador, txt);
ns := Copiar(txt,0,dx-1) ;
sl.Add(ns) ;
txt := Copiar(txt,dx+delta,MaxInt) ;
fim;
finalmente
sl.EndUpdate;
fim;
fim;
~~~~~~~~~~~~~~~~~~~~~~~~~~
ParseDelimited(Memo1.lines,'Zarko;Gajic;;DelphiGuide',';')