Binärdaten und Executables kopieren?



  • Hallo,
    ich will eine Art Setup erstellen, welches bestimmte Dateien von einem Pfad zum anderen kopiert.

    Ich hatte eigentlich daran gedacht, die Dateien einfach zeilenweise zu lesen bzw. zu schreiben, aber ich kenne mich (zumindest was das Arbeiten mit Dateien unter C++ betrifft) überhaupt nicht aus. Gibt es im BCB4 nicht irgendeine Möglichkeit, das ohne komplexe Schleifen o.Ä. zu machen?

    z.B. so etwas ähnliches wie die Funktion copy() aus PHP?



  • probier mal CopyFile()



  • Also, wenn ich folgendes versuche:

    CopyFile(Edit1->Text, Edit2->Text);
    

    gibt er mir folgende Fehler;

    [C++ Error] Unit1.cpp(19): E2027 Must take address of a memory location.
    [C++ Error] Unit1.cpp(19): E2027 Must take address of a memory location.
    [C++ Error] Unit1.cpp(19): E2193 Too few parameters in call to '__stdcall CopyFileA(const char *,const char *,int)'.
    

    Wie genau muss ich die Funktion verwenden? ich habe in der Hilfe nichts zu "CopyFile" gefunden!



  • CopyFile(Edit1->Text.c_str, Edit2->Text.c_str);
    

    vielleicht so



  • da fehlt aber immer noch ne lösung dazu:

    [C++ Error] Unit1.cpp(19): E2193 Too few parameters in call to '__stdcall CopyFileA(const char *,const char *,int)'
    

    Dazu findet man was in der Hilfe(Tipp:Befehl eingeben und F1 drücken)

    Er erwartet noch ne Boolsche Variable die angibt ob die Datei überschrieben werden soll wenn se schon existiert.



  • stimmt



  • da fehlt aber immer noch ne lösung dazu:

    C++ Error] Unit1.cpp(19): E2193 Too few parameters in call to '__stdcall CopyFileA(const char *,const char *,int)'

    Das liegt daran, dass die Funktion (nennt man das so) 3 und nicht nur 2 Parameter enthält!

    Versuchs mal hiermit, hat zumindest bei mir jetzt geklappt:

    CopyFile("c:\\boot.ini", "c:\\boot2.ini", true);
    


  • Und wenn du meínen Beitrag richtig gelesen hast dann hätteste nicht selber in der Hilfe gucken müssen(ich will nicht sagen das das schlecht ist 😃 )
    Da hab ich das nämlich auch schon geschrieben 😉



  • Ja, ist mir auch aufgefallen, muss halt 'n bisschen Sorgfältiger lesen 😉
    Najam besser doppelt als einmal zu viel... 😃



  • CopyFileA(const char *,const char *,int)'

    Was ich nicht verstehe, warum wird eine boolsche Zahl als int angegeben?

    Müsste es nicht eigentlich
    CopyFileA(const char *,const char *,bool)
    heissen?



  • Hallo,

    CopyFile ist eine Funktion der WinAPI und damit pures C. C kennt aber nunmal keinen Datentyp bool. Bei Microsoft wird da normalerweise eine typedef (typedef int BOOL) verwendet.

    Ciao



  • Ist doch eigentlich egal, oder
    false ist 0;
    true ist 1 bzw. -1;



  • Sicher ist das egal. Ich wollte hermes lediglich antworten. Übrigens ist jeder Wert ausser 0 true und nicht nur 1 oder -1.


Anmelden zum Antworten