Home » Tipps & Tricks » Object Pascal » Strings » Wort aus einem String extrahieren
Wort aus einem String extrahieren
Diese Funktion extrahiert ein Wort aus einem String. Der Index wird im zweiten Parameter angegeben. Der Clou der ganzen Geschichte ist der, dass als Trennzeichen ein #0 verwendet wird. Es ist nicht möglich dieses zeichen per Hand, z.B. in einem Edit-Feld einzugeben. So kann man beispielsweise in einem Chat, hinter die eigentliche Chatnachricht weitere Informationen schicken, ohne befürchten zu müssen, dass der User das Trennzeichen schon in seiner Nachricht benutzt hat.#0 ist also das perfekte Trennzeichen 🙂
Function GetWordOfAnsiString(Text : string; WordPos : Word): string; var p : PChar; begin p := PChar(Text); repeat Dec(WordPos); while p^ #0 do begin if WordPos = 0 then Result := Result + p^; Inc(p); end; if WordPos = 0 then Exit; Inc(p); until p^ = #0; end;
Und so kann es dann aufgerufen werden:
procedure TForm1.FormCreate(Sender: TObject); var s : string; begin s := 'Hannes' +#0 + 'Blade' + #0 + 'Ruler'; Showmessage(GetWordOfAnsiString(s,0)); // damit bekommt man das 1. Wort end;