AnsiString zerlegen in Int-Elemente
-
Hallo ich habe folgendes Problem.
Ich möchte in einem Formular aus einem Eingabefeld einen Wert einlesen (5stelliger AnsiString) und diesen Zerlegen in 5 Teile z[0]-z[4].
Hat dazu jemand eine Lösung? Ist es auch möglich den Wert als INT einzulesen und dann zu zerlegen?Danke vorab
-
Alles ist möglich, vor allem wenn man weiß, wie man die Hilfe bedient.
-
danke für die sehr geistreiche Antwort - wenn ich damit erfolg hätte würde ich nicht fragen.
-
zu möglichkeit 1: schon mal mit substrings gearbeitet?
zu möglichkeit 2: weißt du was ein polyadisches Zahlensystem ist?ist das hier eine 'ich bestell fertigen code'-seite ?
-
Sorry tut mir leid - hab von beide keine Ahnung.
Aber das ist egal - dann such ich mir woanders einen Rat.
-
Hallo,
Versuchs doch mal mit
int Zahl1, Zahl2....;Zahl1 = StrToInt(Edit1->Text[0]);
Zahl2 = StrToInt(Edit1->Text[1]);
usw.[ Dieser Beitrag wurde am 13.06.2003 um 07:46 Uhr von maam editiert. ]
-
Naja erstens ist Edit1->Text[*zahl*] schon ein int(bzw char) und macht daher StrToInt überflüssig(ausser zum Wandeln in den eigentlichen Zahlenwert) und zweitens ist die Eigenschaft Text ein AnsiString dessen Index bei 1 anfängt(Pascal bedingt).
Also machs so:
int zahl1, zahl2....; zahl1 = Edit1->Text[1]; zahl2 = Edit1->Text[2]; // oder direkt verwenden
in zahl 1 steht dann der Asciiwert drin.
Wenn du den eigentlichen Inhalt haben willst nehm entweder wie oben schon erwähnt StrToInt oder zieh einfach 0x30 bzw '0' ab:Edit1->Text[1] = '4';
zahl1 = Edit1->Text[1] - '0';
-
Danke für die Hilfe. Hat einwandfrei geklappt.