Jak wyszukać słowo w tekście? (delphi)

0

Mam tekst w memo1 (delphi)

Ala ma kota.

Jak wyszukać słowo "ma" i skopiować do memo2?

0
procedure TForm1.FDFind(Sender: TObject);
var
  sText: string;
  StartFrom, FoundPos: integer;

tekst : string;


begin

  if PreviousFoundPos = 0 then
   
    FD.Options := FD.Options - [frFindNext];

  if not (frFindNext in FD.Options) then begin 
    sText := RE.Text;
    StartFrom := 1;
  end
  else begin 
 
    StartFrom := PreviousFoundPos + Length(FD.Findtext);
   
    sText := Copy(RE.Text, StartFrom, Length(RE.Text) - StartFrom + 1);
  end;

  if frMatchCase in FD.Options then 
   
    FoundPos := Pos(FD.FindText, sText)
  else

    FoundPos := Pos(UpperCase(FD.FindText), UpperCase(sText));

  if FoundPos > 0 then begin

    PreviousFoundPos := FoundPos + StartFrom - 1;
  
    RE.SelStart := PreviousFoundPos - 1;
    RE.SelLength := Length(FD.FindText);
    RE.SetFocus;
 tekst:=FD.FindText;
memo2.Lines.Add(tekst);
  end
  else
    ShowMessage('Nie Odnaleziono "' + FD.FindText + '"');
 
end;

0

Eloszek mnie ubiegł, ale jest prostszy sposób, jeżeli chodzi tylko o skopiowanie konkretnego słowa i nie trzeba do tego "zatrudniać" komponentu TFindDiaog.

const
  FindWhat = 'ma';
var
  S : string;
  X : integer;
begin
  S := Memo1.Text;
  X := Pos(FindWhat, S);
  if X > 0 then
    Memo2.Text := Copy(S, X, Length(FindWhat));
end;

I szczerze polecam zapoznanie się również z jakimiś kursami Delphi czy kompendium na tej stronie, by nie pytać o banalne podstawy.

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