Wyszukiwanie ciągu znaków w tekście

0

Może to proste o co pytam, ale jakoś nie mogę wymyślić czegoś, co:

  1. Bierze z edita jakiś tekst;
  2. Sprawdza go, czy jest gdzieś taki w Memo;
  3. Podaje wynik poszukiwań :-) ;

Jak ktoś może kliknąć na "odpowiedz" i wie jak to zrobić, to byłbym wdzięczny :-)

{browar}--===================================
Prezes, Delphi 6 Ent.

0

już wiem jak to zrobić...

0

Masz tutaj kodzik:)
Ja zrobilem to tak:
procedure TForm1.Button1Click(Sender: TObject);
var
text : String;
memo : String;
begin
text := edit1.text;
memo := Memo1.Text;
if text = memo then begin showmessage('Texty sa takie same');
end else showmessage('Texty sa rozne');
end;
end.
Ma to jedna wade kursor w memo musi byc ustawiony na samej górze!--

0

Prawdopodobnie zastosowałeś metode przeszukiwania linowego(czyli znak po znaku), która jest dosyć wolna dla dużej ilości textu, jeżeli zależy Ci na czasie to zastosuj jeden z szybszych algorytmów takich jak: K-M-P , Boyer'a i Moore'a, Rabina i Karpia (zupełnie przypadkiem posiadam opisy ich wszystkich w bardzo "mądrej" książce :) )

0

chodziło o to, że chciałem wyszukać, czy to co wpisałem w memo2 jest gdzieś w memo1. To, co napisałem, to macie:

procedure TForm1.przeszukaj;
var
tmp1,tmp2:string;
begin
tmp1:=Memo1.Lines.GetText; *tekst
tmp2:=Memo2.Lines.GetText; *szukane

  tmp1:=copy(tmp1,1,pos(tmp2,tmp1)+length(tmp2)-1);
  delete(tmp1,1,pos(tmp2,tmp1)-1);
  if tmp1=tmp2 then
    begin
      ShowMessage('Znalazłem!');
      break;
    end;

end;

proste i działa. {hello} --===================================
Prezes, Delphi 6 Ent.

1 użytkowników online, w tym zalogowanych: 0, gości: 1