Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Strings mit Trennzeichen in StringList
joerg68 - Do 30.10.03 13:31
Titel: Strings mit Trennzeichen in StringList
Ich will einen String in dem verschiedene Werte durch ein Trennzeichen getrennt sind in eine TStringLIst einlesen.
Kann mir jemand helfen
Danke
Gruß
Jörg
Killi - Do 30.10.03 14:56
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| // Dein string samt trennzeichen (-) name:= "Hans-jürgen-von-der-Lippe"; repeat // Position der a:= Pos('-', name); // Trennen Stringlist.Add(Copy(name, 0, a - 2)); name:= Copy(name, a + 1, Length(name)); until a = -1; |
nicht getestet, ber müsste gehen!
joerg68 - Do 30.10.03 15:01
Habe es jetzt selbst rausgefunden. :D Hier meine Lösung
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Var Argumente : string Trennzeichen : integer; Argumente:= MAP.FieldByName('Argumente').asstring; while pos(';',Argumente)<>0 do begin Trennzeichen := Pos(';',Argumente); ArgLIst.Add(Copy(Argumente,0,Trennzeichen)); Delete(Argumente,0,Trennzeichen+1); end; |
Das mit dem Delete muß sein weil pos immer nur die erste Position liefert an der der Suchstring auftritt.
Trotzdem Danke
Gruß
Jörg
Killi - Do 30.10.03 15:02
sorry, hat nicht getan, hier nochma:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure TForm1.Button1Click(Sender: TObject); var a: integer; name: string; fertig: boolean; begin // Dein string samt trennzeichen (-) name:= 'Hans-jürgen-von-der-Lippe'; repeat // Position der a:= Pos('-', name); // Trennen if (a > 0) then begin ListBox1.Items.add(Copy(name, 0, a - 1)); end else begin ListBox1.Items.add(name); fertig:= True; end; name:= Copy(name, a + 1, Length(name)); until fertig = True; end; |
Killi - Do 30.10.03 15:05
while pos <> 0 stimmt aber nicht, jedenfalls hats bei mir nicht geklappt, is ja auch klar - wenn dasTrennzeichen nicht mehr gefunden wird steht der REST noch da - bei mir "Lippe"...also evtl. danach nochmal den Rest einfügen!
joerg68 - Do 30.10.03 15:26
Im prinzip hast Du Recht aber ich sorge dafür, daß zum Schluß noch mal ein Trennzeichen steht.Dann klappt es auch mit pos(....) <> 0.
Gruß
Jörg
maximus - Do 30.10.03 15:31
Wie wärs wenn du 'delimiter'-fähigkeiten von TStringList benutzt? :
Delphi-Quelltext
1: 2: 3:
| ArgLIst.delimter := ';' ; ArgList.DelimitedText := MAP.FieldByName('Argumente').asstring; |
habs nicht getestet, wäre aber die einfachste möglichkeit :wink:
cu,
joerg68 - Do 30.10.03 17:14
Delimter Kennt er bei mir nicht. Kann aber auch sein, das er das nur in D5 nicht kennt.
Gruß
Jörg
maximus - Do 30.10.03 18:33
verdammte axt :? ...immer diese versionen! Schade für dich, weil das super praktisch wär.
matze - Fr 31.10.03 11:03
aber die Stringlist in D5 kann die eigenschaft commatext !! schau die dir mal in der Hilfe an !!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!