Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
AW: String nach bestimmten Zeichen(Buchstaben) absuchen
23. Aug 2017, 17: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;
|
|
Zitat
|