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.


Anmelden zum Antworten