Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - TStringList POS benutzen
baphumet - Do 01.10.09 21:28
Titel: TStringList POS benutzen
Hi,
ich habe eine StringList in dieser speichere ich Strings ab, ich weiß wie man Strings mithilfe der Funktion POS teilen kann und das gelingt mir auch. Meine Frage ist, geht dies auch mit den Strings innerhalb einer StringList ohne diese in eine separate Variable kopieren zu müssen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var StringList: TStringList; begin StringList:=TStringList.Create; StringList.Add('34;5a'); StringList.Add('66;2a'); end; |
Es kann sein das ihr mir ratet bevor ich die Werte über Edits in eine StringList speichere diese zu teilen, aber ich benötige diese in dieser Form in der StringList, denn ich muß feststellen, welcher Teil der rste und dee zweite ist, dies geschieht ja mit dem a.
FinnO - Do 01.10.09 22:16
erstmal solltest du einen String in ' ' setzen, damit er auch als String und nicht als Bezeichner oder Zahl angesehen wird.
Teilen kannst du den String dann ja beim erneuten Laden.
jaenicke - Do 01.10.09 23:50
Du kannst Pos auch auf die Einträge anwenden, ja, sicher.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var StringList: TStringList; begin StringList := TStringList.Create; try StringList.Add('34;5a'); ShowMessage(Copy(StringList[i], 1, Pos(';', StringList[i]) - 1)); ShowMessage(Copy(StringList[i], Pos(';', StringList[i]) + 1, MaxInt)); finally StringList.Free; end; |
Allerdings würde ich das nicht empfehlen, da so der String mehrfach zwischengespeichert werden muss.
Eine einfachere Möglichkeit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var StringList: TStringList; begin StringList := TStringList.Create; try StringList.NameValueSeparator := ';'; StringList.Add('34;5a'); ShowMessage(StringList.Names[i]); ShowMessage(StringList.ValueFromIndex[i]); finally StringList.Free; end; |
baphumet - Fr 02.10.09 11:36
Ok, die letzte Variante hat wirklich gut funktioniert, nur beim letzen Showmessage erhalte ich als Argument einen leeren String, aber dieser sollte doch mein Trennzeichen sein das mit NameValueSeparator festgelegt wurde, oder sehe ich da was falsch?
jaenicke - Fr 02.10.09 11:37
Wenn das eine leere Zeile ist, dann steht da ja nix drin, dann ist das doch richtig. ;-)
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!