So parsen Sie eine Zeichenfolge mit Trennzeichen in eine Zeichenfolgenliste
Roberto Westbrook/Getty Images
Es gibt viele Fälle, in denen Sie a teilen müssen Schnur In ein Delphi bietet mehrere Methoden zum Analysieren eines Strings, aber Sie werden vielleicht feststellen, dass keine genau das tut, was Sie brauchen. Beispielsweise verwendet die RTL-Methode ExtractStrings immer Anführungszeichen (einfach oder doppelt) als Trennzeichen. Ein weiterer Ansatz ist die Verwendung von Trennzeichen und Getrennter Text Eigenschaften der TStrings-Klasse – aber leider gibt es einen Fehler in der Implementierung ('innerhalb' von Delphi), bei dem das Leerzeichen immer als Trennzeichen verwendet wird. Die einzige Lösung zum Analysieren einer Zeichenfolge mit Trennzeichen besteht darin, eine eigene Methode zu schreiben: ~~~~~~~~~~~~~~~~~~~~~~~~~~ Nutzung (füllt Memo1 aus) :
Beispiel für eine Zeichenfolge mit Trennzeichen
Prozedur ParseDelimited(const sl : TStrings; const value : string; const delimiter : string) ;
war
dx : ganze Zahl;
ns : Zeichenkette;
txt: Zeichenkette;
delta : ganze Zahl;
Start
delta := Länge(Trennzeichen) ;
txt := Wert + Trennzeichen;
sl.BeginUpdate;
sl.Klar;
Versuchen
während Länge (txt) > 0 tun
Start
dx := Pos(Trennzeichen, txt) ;
ns := Kopieren(txt,0,dx-1) ;
sl.Add(ns) ;
txt := Kopieren(txt,dx+delta,MaxInt) ;
Ende;
endlich
sl.EndUpdate;
Ende;
Ende;
~~~~~~~~~~~~~~~~~~~~~~~~~~
ParseDelimited(Memo1.lines,'Zarko;Gajic;;DelphiGuide',';')