Função para pegar palavras em uma string
08/04/2003
0
Preciso de uma função que pegue as palavras de uma string informada pelo usuário. O separador de palavras pode ser um ´;´. Por exemplo, se a pessoa digitar: rato;casa;livro;texto a função deve jogar cada palavra sem o ´;´ em um array, stringlist ou algo parecido. A função deve tratar entradas como ´;;;´ etc. Desde já agradeço.
Anonymous
Curtir tópico
+ 0
Responder
Posts
08/04/2003
Anonymous
Adapte e divirta-se...
[b:8e09ae4257]
117 - Quebra de String
Nesta dica iremos mostrar uma função que cria uma lista de strings baseado numa cadeia de string, quebrando-a onde encontrar um caractere predeterminado. Por exemplo:
Uma string como ´O céu é azul´, escolhendo o caracter espaço (´ ´) para quebrar, seria tranformado em uma lista de strings que, colocada em um componente do tipo TListBox ficaria:
O
céu
é
azul
Isto é, onde havia um espaço a string foi ´quebrada´.
function sBreakApart(BaseString, BreakString: string; StringList: TStringList): TStringList;
var
EndOfCurrentString: byte;
TempStr: string;
begin
repeat
EndOfCurrentString := Pos(BreakString, BaseString);
if EndOfCurrentString = 0 then
StringList.add(BaseString)
else
StringList.add(Copy(BaseString, 1, EndOfCurrentString - 1));
BaseString := Copy(BaseString, EndOfCurrentString + length(BreakString), length(BaseString) - EndOfCurrentString);
until EndOfCurrentString = 0;
result := StringList;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t: TStringList;
begin
t := TStringList.create;
ListBox1.Items.Assign(sBreakApart(Edit1.Text, ´ ´, t));
t.free;
end;
[/b:8e09ae4257]
[b:8e09ae4257]
117 - Quebra de String
Nesta dica iremos mostrar uma função que cria uma lista de strings baseado numa cadeia de string, quebrando-a onde encontrar um caractere predeterminado. Por exemplo:
Uma string como ´O céu é azul´, escolhendo o caracter espaço (´ ´) para quebrar, seria tranformado em uma lista de strings que, colocada em um componente do tipo TListBox ficaria:
O
céu
é
azul
Isto é, onde havia um espaço a string foi ´quebrada´.
function sBreakApart(BaseString, BreakString: string; StringList: TStringList): TStringList;
var
EndOfCurrentString: byte;
TempStr: string;
begin
repeat
EndOfCurrentString := Pos(BreakString, BaseString);
if EndOfCurrentString = 0 then
StringList.add(BaseString)
else
StringList.add(Copy(BaseString, 1, EndOfCurrentString - 1));
BaseString := Copy(BaseString, EndOfCurrentString + length(BreakString), length(BaseString) - EndOfCurrentString);
until EndOfCurrentString = 0;
result := StringList;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t: TStringList;
begin
t := TStringList.create;
ListBox1.Items.Assign(sBreakApart(Edit1.Text, ´ ´, t));
t.free;
end;
[/b:8e09ae4257]
Responder
Clique aqui para fazer login e interagir na Comunidade :)