Com o uso da função
ExtractStrings(delimitador,espaco_branco,string,resultado);
pode-se dividir uma string. Onde:
- delimitador como o próprio nome diz, é o caracter que separa as sub-strings;
- espaço_branco é o conjunto de caractes a serem ignorados;
- string é a string propriamente dita, a qual se deseja dividir;
- resultado é a lista de sub-strings retornadas.
obs: ExtractStrings não adicona strings vazias na lista de strings.
Um caso de uso.
Suponha que em uma consulta de cep, o resultado venha em uma única string onde as sub-strings estão divididas pelo caracte pipe(|), e você deseja separar os resultados em diferentes variáveis. Para isso ao inves de criar uma função para varrer a string e ir concatenando o resultado em suas variaveis, use a função nativa do delphi ExtractStrings, como veremos logo abaixo.
…
var
CEP,logradouro,bairro,cidade,estado : string;
lista:TStringList;
begin
lista:=TStringList.Create;
CEP:=ConsultaCEP();
ExtractStrings([‘|’],[‘ ‘],pchar(CEP),lista);
logradouro:=lista.Strings[0];
bairrro:=lista.Strings[1];
cidade:=lista.Strings[2];
estado:=lista.Strings[3];
FreeAndNil(lista);
…
Isso resolve todo o problema em dividir uma string;
Por enquanto é só.
Até a próxima.
fonte: Help Delphi
Uso o delphi 7.0, ele mostra a função ExtractStrings no code source mas não funciona. Tem que utilizar algo mais alem de SysUtils? e Para usar o TStringList?
Caro Leandro, eu utilizo o Delphi 2006, mas creio que para usar a função ExtractStrings no Delphi 7 basta adicionar apenas esta classe. Mas parta ter certeza, entre no help do delphi que você utiliza e veja qual classe deve ser referenciada.
Valeu ai cara, mas já tinha descoberto como fazer. quem que utilizar a classe ‘Classes.pas’.
noooooooooo velho me tirou do aperto aqui..hehe só uma dúvida eu tenho um arquivo em csv que é lido de linha a linha delimitado pelo ‘;’ quando eu utilizo a funcao que voce passou ele nao le a outra linha,…teria como dar uma ajuda por favo?
michael, pelo que você falou que é lido de linha a linha, você terá que usar rotinas para abrir arquivo.
tente abrir o arquivo em um memo e ir correndo linha a linha.
caso de certo, comente aqui para que outros não passem por isso.
um abraço.
Velhoooo quebrou um galhasssoooo aquiiiiiiiiiiiii BRIGADÃOOO MESMOOO, precisar saiba que será bem vindoo…brigadooo..
[…] Achei aqui. […]
Realmente quebrou um galho esse exemplo.
vlw!
Grande Dica.
Obrigado