(Borland C++...) Daten aus Memo in Edit



  • hi,

    ich kenn mich nicht besonders gut aus mit c++, deshalb könnte die frage ziemlich leicht zu beantworten sein.
    also:
    generell will ich, dass beim beenden des programmes die inhalte von 7 edit-feldern in eine datei gespeichert werden und beim starten des programms wieder zurück ind die felder geladen werden.

    meine lösung ist bisher so (ich bin anfänger, deshalb wahrscheinlich eine komische lösung):

    ich schreibe die inhale der edit-felder in ein memo (jedes feld in eine neue zeile) und speichere das dann. soweit so gut, allerding kann ich es nicht so richtig laden.

    bisher mach ich es so:

    ich lade die datei wieder ins memo und mach dann folgendes:

    char txt[10];
    sprintf(txt, "%d", Memo1->Lines[0]);
    Edit1->Text = StrToInt(txt);

    ich schreib den inhalt der ersten zeile der memo in txt und will dann txt einfach wieder ins edit-feld schreiben. wenn ich das so mache, schreibt der mir aber immer komischerweise "1074022856" in das feld, egal, was eigentlich dort stehe sollte.

    hat irgendjemand eine ahnung, wie ich das machen kann, dass es geht ???

    schonmal danke im voraus



  • ich kenn zwar diese c-format funktionen nicht so gut, aber sollte das nicht heißen:

    char txt[10]; //was machst du, wenn es mehr zeichen gibt?
    sprintf (txt, "%s", Memo1->Lines[0]); //sieht sehr gefährlich aus...
    //außerdem glaube ich, mit %s wird nur ein "wort" (bis zum nächsten Whitespace) 
    //übertraten
    Edit1->Text = txt; //ist ja klar, dass wenn du StrToInt verwendest, eine Zahl rauskommt...
    //aber ob's OK ist, einfach so nur zeigeradressen zu kopieren, und nicht deren inhalt?
    

    außerdem sind "Editfelder", "Memos" etc. nicht teil von C++. Das muss eine extra Bibliothek sein. Wahrscheinlich Borland's VCL.
    welchen compiler benutzt du?
    und lies dir das durch: Wohin mit meiner Frage?



  • Original erstellt von davie:
    **ich kenn zwar diese c-format funktionen nicht so gut, aber sollte das nicht heißen:

    char txt[10]; //was machst du, wenn es mehr zeichen gibt?
    sprintf (txt, "%s", Memo1->Lines[0]); //sieht sehr gefährlich aus...
    //außerdem glaube ich, mit %s wird nur ein "wort" (bis zum nächsten Whitespace) 
    //übertraten
    Edit1->Text = txt; //ist ja klar, dass wenn du StrToInt verwendest, eine Zahl rauskommt...
    //aber ob's OK ist, einfach so nur zeigeradressen zu kopieren, und nicht deren inhalt?
    

    **

    sorry

    zu den anmerkungen:
    1. es gibt nie mehr zeichen
    2. ich nehm %d um den wert dezimal zu schreiben
    3. es soll eine zahl rauskommen, sonst gibts nichts

    ich nehm den Borland C++-Builder

    ich kanns ja nochmal ins borland-forum schreiben 😉

    [ Dieser Beitrag wurde am 17.04.2003 um 13:20 Uhr von WG_Spritzwasser editiert. ]



  • ich kenn borland's funktionen leider zu wenig
    aber ich denke ein moderator wird dich verschieben.



  • aber ich denke ein moderator wird dich verschieben.

    Exakt 🙂


Anmelden zum Antworten