Localizar todos blocos separados por espaço

Delphi

20/03/2003

Olá amigos,

Estou precisando pegar pedaços de uma string que estejam separados por espaço e verificar em outra string se a parte selecionada também existe. Por exemplo:

Tenho a a seguinte string:
String1 := ´Asp. Saulo Gomes da Silva Ribeiro´;

Preciso pegar cada uma das partes que estão separadas por espaço:
´Asp.´,´Saulo´,´Gomes´,´da´,´Silva´,´Ribeiro´

E comparar se cada uma delas existe na string indicada:
String2 := ´Aspirante Saulo G. S. Ribeiro´

Se alguém tiver alguma idéia de uma forma simples e que seja rápida para executar tal tarefa eu agradeço. Como o número de strings a ser verificado é consideravelmente grande, quanto mais rápido o processo for executado, melhor.

Muito grato a todos.

Abraço.


Carlos Alberto

Carlos Alberto

Curtidas 0

Respostas

Anonymous

Anonymous

20/03/2003

Carlos Alberto, esse procedimento realiza a quebra das string, verifique se ele pode ser útil

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;


joao@funape.org.br


GOSTEI 0
POSTAR