Multispeichern, aber wie?



  • Servus,

    Ich besitze folgendes Problem.
    Ich habe ein kleines Programm geschrieben, welches insgesamt 12 listboxen umfasst, die alle einzeln gespeichert werden sollen.
    DIe shab ich auch schon mit den Befehl hinbekommen:
    ListBox1->Items->SaveToFile("Saves/File1.txt");
    ListBox2->Items->SaveToFile("Saves/File2.txt");
    usw... bis Listbox12.

    Die Sache ist nur , das der Benutzer in ein editierfeld selber den zu Speichernden Pfad eingeben kann z.B. "Woche1".

    Zuerst wird ein ordner erstellt mit den Befehl
    CreateDirectory(edt_pfad->Text.c_str(),NULL).
    Das Problem ist nur , dass der Befehl Probleme mit den Pfadstrich bekommt.
    Würde ich also ListBox1->Items->SaveToFile(edt_pfad->Text / "File1.txt")
    dann würde Borland den / Schrägstrich als Bruchzeichen und nicht als Pfadzeichen interpretieren und somit stürzt das Programm beim speichern ab.

    Wisst ihr eine möglichkeit , 12 Listboxen durchnummeriert von File1.txt bis File12.txt unter einen eigenen selbst eingegebenen Pfad abzupeichern?

    Schomal Dank im Voraus.



  • Dein Problem ist einfach nur das es unter Windows nicht der / sonder der \ ist den Du für Pfade benutzen musst.

    Du müsstest also :

    ListBox1->Items->SaveToFile(edt_pfad->Text + "\\File1.txt")
    

    machen.

    die 2 \\ darum damit der Compiler weisst das Du ein \ angeben willst.

    Du solltest noch bei deinem Eingabe Feld abchecken ob es sich bei dem letzten Zeichen bereits um ein \ handelt. Nur um Fehler zu ermeiden.



  • Windows akzeptiert mindestens seit 2K auch den Forward-Slash als Pfad-Delimiter.

    Das eigentliche Problem von Trick-Daddy ist hier, dass er den Slash nicht mit in den String aufgenommen hat, so dass er, wie richtig bemerkt, als Operator interpretiert wird. Korrekt wäre also z.B.

    ListBox1->Items->SaveToFile(edt_pfad->Text + "/File1.txt");
    //oder
    ListBox1->Items->SaveToFile(edt_pfad->Text + "/" + edt_filename->Text);
    


  • Vielen Dank Fox Alpha,

    werde ich mal gleich probieren.
    Und zu ghost_hal. Das \ Zeichen hab ich mit in die Klammer gesetzt nur dann kommt die Fehlermeldung "Function Call Missing"



  • Hey Cool,
    Ich danke euch beiden, haben beide Varianten funktioniert.

    Falls ich noch eine letzte Frage stellen dürfte 🙂

    Ist es möglich sämtliche, dafür benötigten DLLs in die Exe zu integrieren oder zumindest sie automatisch mit in das Programmverzeichnis kopieren zu lassen?

    Weil wenn ich das Program auf anderen Rechnern ausführe, wo kein Borland C++ Builder drauf ist, fehlen dem Programm sämtliche Dateien.



  • Dazu gibts eine Anleitung in den FAQs

    Grüße Joe_M.


Anmelden zum Antworten