![]() |
String in 2 Strings aufteilen
hallo!
ich möchte gerne einen string (in diesem konkreten fall 2 messwerte, die mit einem leerzeichen getrennt sind) in 2 strings aufteilen. beispiel: der string heißt: "2 0.5" die messwerte sollen dann so zwei variablen zugeordnet werden: x:=2; y:=0.5; wie kann ich das am einfachsten anstellen? |
Re: String in 2 Strings aufteilen
Pos(), StrScan, StringListe (.Delimited, .DelimitedText), ...
|
Re: String in 2 Strings aufteilen
Oder mal die Forensuche nach Explode bemühen.
|
Re: String in 2 Strings aufteilen
Such nfach mal nach ListBox Einträge trennen in der dp ist zwar mit ner listbox aber das kannste dann bestimmt "umschreiben"
|
Re: String in 2 Strings aufteilen
Hallo,
hier noch ein Ansatz aus den guten alten Tagen:
Delphi-Quellcode:
Grüße vom marabu
procedure ExtractXY(const s: string; var x: Integer; var y: Double);
var i: Integer; begin Val(s, x, i); Val(Copy(s, Succ(i), MaxInt), y, i); end; |
Re: String in 2 Strings aufteilen
Hallo,
eine kleine Ergänzung: Die Prozedur Val() liefert unter gewissen Umständen ![]() Gruß Hawkeye |
Re: String in 2 Strings aufteilen
oder 'ne kleine for ... schleife ;-)
|
Re: String in 2 Strings aufteilen
Hallo Hawkeye,
ich kann mich nicht erinnern jemals über diesen Bug gestolpert zu sein, aber der RTL-Fehler ist tatsächlich da. Interessant ist, dass der QC-Eintrag von 2006 datiert, der fehlerhafte ASM-Code aber so alt wie Delphi (min. D2) selbst ist. Noch interessanter finde ich, dass die relativ spät eingebrachte PUREPASCAL Version zwar nach Vorlage des ASM-Codes geschrieben worden zu sein scheint, aber erstens auch falsch ist und zweitens ganz andere Fehler produziert. Danke für deine "Ergänzung" - ich werde Val() in Zukunft sehr argwöhnisch betrachten... Gute Nacht |
Re: String in 2 Strings aufteilen
habe mir mal die funktion Explode angeschaut, allerdings verstehe ich noch nicht so ganz, wo genau die beiden rest-strings ausgegeben werden. könnte mir das jemand freundlicherweise erklären?
ich habe mir das in etwa so vorgestellt:
Delphi-Quellcode:
for i:=1 to Memo1.Lines.Count do
begin MemoX.Lines.Add(explode(' ',Memo1.Lines[i],2)); MemoY.Lines.Add(explode(' ',Memo1.Lines[i],2)); end; end; |
Re: String in 2 Strings aufteilen
Schreib dir doch einfach eine kleine Funktion selber
Delphi-Quellcode:
€: Delphi Schließen-TAG vergessen
procedure extractXY(s: string; var x: integer; var y: double);
begin if pos(' ', s) <> 0 then begin x := StrToInt(copy(s, 0, pos(' ', s)-1)); delete(s, 1, pos(' ', s)); y := StrToFloat(copy(s, 0, length(s))); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz