Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: bestimmte Wörter im Memo suchen

  Alt 27. Jun 2006, 18:15
Hier hast du etwas Code zum Studieren:

Delphi-Quellcode:
uses
  StrUtils; // PosEx(), AnsiContainsText()

function After(const s, subStr: String): String;
var
  i: Integer;
begin
  i := Pos(subStr, s);
  if i = 0
    then Result := ''
    else Result := Copy(s, i + Length(subStr), MaxInt);
end;

function Between(const s, sLeft, sRight: String): String;
var
  iLeft, iRight: Integer;
begin
  iLeft := Pos(sLeft, s);
  if iLeft > 0 then
  begin
    Inc(iLeft, Length(sLeft));
    iRight := PosEx(sRight, s, iLeft);
    if iRight > 0
      then Result := Copy(s, iLeft, iRight - iLeft)
      else Result := ''
  end else Result := '';
end;

procedure CustomExtract(sIn, sOut: TStrings; const keyword: String);
var
  i: Integer;
  s: String;
begin
  sOut.Clear;
  for i := 0 to Pred(sIn.Count) do
  begin
    s := Between(sIn[i], '(', ')');
    if s <> 'then
    begin
      if AnsiContainsText(After(sIn[i], ')'), keyword) then
        s := s + ' ' + keyword;
      sOut.Add(s);
    end;
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  CustomExtract(Memo.Lines, ListBox.Items, 'Konto');
end;
Trage bei Gelegenheit mal deine Delphi-Version in dein DP-Profil ein.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat