CopryFile



  • Wenn ich mit OpenDialog eine Datei auswähl,

    dann steht in FileName nur C:\test\test.txt

    und nicht C:\\test\\test.txt

    und ich brauche das aber mit \\

    ciao zani

    verwende BCB 6



  • @Dasd:
    Der Code funzt, habe ihn getstet. i bricht ab, wenn es so hoch ist wie die stringlänge, nein sogar einen höher. Stimmt, der index müsste aber noch einmal erhöht werden, weil sonst bleibt er an einer Stelle stehen und fügt immer dort ein.
    Aber ich habe eben gemerkt, das es schwachsinn ist das da einzufügen weil es ohne auch funzt. Mir ist auch klar geworden warum, wenn ich nur ein \ eingebe speichert er das intern ja mit \. Aber das hast du wie ich gerade sehe ja bereits gschrieben...

    @zanie1303:
    Die if-Zeile darf nicht "\" enthalten, sondern MUSS '\' Hochkommas enhalten!
    Nein du musst ifstream nicht verwenden, war nur ein beispiel.

    EDIT:
    @zanie1303:
    Das da nur ein \ steht ist ganz normal, wie gesagt, er speichert das intern mit 2 \, also \, weil er es sonst gar nicht anzeigen könnte. du hast schon \\ da stehen, bei der Ausgabe wird immer nur einmal \ angezeigt.

    Code-Hacker



  • Ich hab zwar keine Ahnung, wozu das gut sein soll, aber ich würde das mit

    neu = AnsiReplaceStr(alt, "\\", "\\\\");
    

    machen.
    Natürlich nicht die Headerdatei vergessen mit einzubinden...



  • Wenn ich mit OpenDialog eine Datei auswähl,

    dann steht in FileName nur C:\test\test.txt

    und nicht C:\\test\\test.txt

    und ich brauche das aber mit \\

    ciao zani

    verwende BCB 6

    In BCB5 war es auch so, dass ein \\ in Filename stand

    ciao zani1303



  • Darf man vllt. erfahren warum es da mit \\ stehen soll??? Wozu soll das gut sein???

    Code-Hacker



  • Hi, das hört sich ja nciht schlecht an mjit dem AnsiReplaceStr()

    Die funktion Methode habe ich noch garnicht gekannt.

    Werde ich gleich testen.

    ciao zani VIELEND ANK SCHONMAL wird sicherlich funzen.... 🙂



  • Nun warum \\

    ich möchte gerne mit FileCopy(,) eine Dateiverscheiben und zu Pfadangabe bracuht man ein \\ und mit OpenDialog1->FileName bekomme ich nur ein \

    ciao zani1303



  • welche header braucht man zu AnsiReplaceStr()

    ciao zani1303



  • @zanie:
    Das muss aber funktionieren, ohne das du da zwei \ hast. Wenn du den Pfad direkt in der Funktion angibst musst du \\ schreiben, damit er erkennt das es sich um einen \ handelt. Ein \ erzeugt eine Escape-Sequenz und um einen \ zu erzeugen braucht man \.

    Beispiel was ich meine:

    cout << "Bitte geben Sie die Dateiendung mit an." << endl;
    cout << "Dateiname: ";
    cin.getline(path, 80);
    ifstream file(path, ios_base::in);
    

    Bei der eingabe brauchst du jetzt nur einmal \ eingeben, z.B: F:\Eigene Dateien\Test.txt und kannst es trotzdem ganz normal bei ifstream einsetzen. Wenn du folgendes machst:

    ifstream file("C:\\Eigene Dateien\\Test.txt", ios_base::in);
    if(file.good())
    {
      while(!file.eof())
      {
        file.getline(ok, sizeof(ok)-1);
        cout << ok << endl;
      };
    }
    

    Jetzt musst du es mit 2 \ angeben, deswegen verstehe ich dein Problem nicht, normalerweise müsste es ganz normal funktionieren. Wenn du z.B. schreibst:

    cout << "C:\\Eigene Dateien\\Test.txt"
    

    dann wird auf dem Bildschrim: C:\Eigene Dateien\Test.txt erscheinen.

    Deswegen, es müsste also funktionieren. Sprich bei der Ausgabe wird nur 1 \ angzeigt, bei der verwendung im Programm hat er natürlich \\ um ein \ darstelllen zu können.

    Code-Hacker



  • @zani1303

    Ich hab mal für jemanden so ein Tool gecodet. Wenn du willst schick ich es dir 😉


Anmelden zum Antworten