Zwischen

Verweis: NZwischen
Uses: System
Eingabe: Anfang,Ende(Integer),Text(String)
Ausgabe: Text(String)
Funktion: Gibt den Text Zwischen den Anfangs-String und dem Ende-String zurück.

Da es immer wieder vorkommt, dass wir einen Teil aus einem Text herauslösen wollen, welcher zwischen zwei Strings oder auch Zeichen steht haben wir folgende Funktion geschrieben.

Function Zwischen(Anfang,Ende,Text:ShortString):ShortString;
Var
 Position:Integer;
 Teil:String;
Begin
 Result:='';
 Position:=Pos(Anfang,Text);
 If Position=0 Then Exit;
 Teil:=Copy(Text,Position+1,255);
 Position:=Pos(Ende,Teil);
 Delete(Teil,Position,255);
 Result:=Teil;
End;

Hier wird ein String zurück gegeben, wenn das Anfangs-Zeichen oder der Anfangs-String vorhanden und Ende-Zeichen oder String vorhanden ist. Wenn nicht dann gibt es einen Leerstring. Deswegen solte der Aufruf so erfolgen:

procedure TForm1.Button1Click(Sender: TObject);
const
  HTMLText = '<p><a href="http://www.w3.org/"><img alt="W3C" height="48"'
    + 'src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>';
begin
  Edit1.Text := Zwischen('href="', '/"', HTMLText);
  if Edit1.Text = '' then
    ShowMessage('Ich habe den Text nicht gefunden.');
end;

In dem Beispiel wird im Html-Code eine Internet-Adresse extrahiert. Das Meldungsfenster wegen “Text nicht gefunden” ist hier wie immer nur symbolisch zu sehen. Weil Umlaute aus 2 Bytes bestehen, haben wir den Quelltext so formuliert, dass dies keine Auswirkungen auf die Benutzung der Umlaute hat. Die übergeben Zeichen sind Case-sensitive, es wird also die Groß- Kleinschreibung beachtet. Siehe dazu auch die Erweiterung NZwischen.