Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: String nach bestimmten Zeichen(Buchstaben) absuchen

  Alt 23. Aug 2017, 16:32
Eine einfache for-Schleife tuts hier eigentlich auch. Wenn nach Zeichenfolgen gesucht werde soll, lässt sich mit PosEx schon was basteln.
Delphi-Quellcode:
function ZaehleFundstellen(const ASubStr, AText: string): Integer;
{---}
  function FindNext(const ASubStr, AText: string; var AIndex: Integer): Boolean; inline;
  begin
    // ab der Position AIndex nach dem Buchstaben suchen, AIndex auf die nächste Fundstelle setzen
    AIndex := PosEx(ASubStr, AText, AIndex);
    // wenn der Buchstaben nicht mehr gefunden wurde ist AIndex = 0
    Result := (AIndex > 0);
  end;
{---}
var
  i: Integer;
begin
  Result := 0;
  // i zeigt auf den ersten Buchstaben
  i := 1;
  while FindNext(ASubStr, AText, i) do
  begin
    // Fundstelle zählen
    Inc(Result);
    // i auf den nächsten Buchstaben nach der Fundstelle
    Inc(i, Length(ASubStr));
  end;
end;

procedure TForm1.ButtonClick(Sender: TObject);
var
  sText, sSuchtext: string
  iAnzahl: Integer;
begin
  sSuchtext := TButton(Sender).Caption;
  sText := Edit1.Text;
  iAnzahl := ZaehleFundstellen(sSuchtext, sText);
  Memo1.Lines.Add(Format('"%s" %d x gefunden', [sSuchtext, iAnzahl]));
end;
  Mit Zitat antworten Zitat