lempy Geschrieben 14. Juni 2014 Teilen Geschrieben 14. Juni 2014 Hallo Leute Ich habe einen kleinen Texteditor erstellt und möchte nun die Dateien, die ich mit dem"openFileDialog" öffne beim öffnen in eine .BAK-Datei Sichern oder Kopieren. Dabei soll der Name der Datei beibehalten werden und nur die Endung sich ändern. Aus Text.doc z. B. wird dann Text.bak. Falls es schon eine Sicherungskopie von dieser Datei gibt, dann soll sie überschrieben werden. Wenn ich das richtig sehe ist eine "BAK-Datei" immer eine Sicherungskopie einer Datei. Also müsste meine Methode ungefähr so heißen: Void Copy(String ^Quelldatei, String ^zieldatei, bool ueberschreiben) Quelldatei ist dabei meine Text.doc und Zieldatei Text.bak das Überschreiben bewirkt dann die Bool-Anweisung in der überprüft wird ob es die Datei Text.bak schon gibt. Das ganze Kopieren der Datei müsste dann in der Methode "Void openFileDialog1_FileOK" aufgerufen werden und zwar nach dem Laden der Datei. Hier meine eigene Methode zum kopieren der Datei: Void sicherungsKopie(String ^dateiname, String ^kopie, Boolean ^ueberschreiben) { dateiname = openFileDialog1->FileName; kopie = dateiname; // kopie erhält den Namen der Datei kopie = (dateiname,"C:\\Users\\dag\\Desktop\\test\\Archiv\\*.bak"); // ? ueberschreiben = // ? File::Copy(dateiname, kopie ); } Meine "FileoK"-Methode: private: System::Void openFileDialog1_FileOk(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) { // den Namen setzen dateiname = openFileDialog1->FileName; this->Text = dateiname; // die Datei laden richTextBox1->LoadFile(dateiname); [B]Hier müsste ich dann meine Kopiermethode aufrufen[/B] // die Eigenschaft Modified zur Sicherheit auf false setzen richTextBox1->Modified = false; } Ich komme einfach auf keine Idee, wie ich den Namen der Quelldatei an die Zieldatei übergebe und dann noch mit der Endung .bak versehe. Die Abfrage, ob die Bak-Datei vorhanden ist denke ich mal wird so aussehen können.: if(IO::File::Exists(kopie)) { überschreibe ??? Lieben Dank für Eure Hilfe lempy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Repac3r Geschrieben 14. Juni 2014 Teilen Geschrieben 14. Juni 2014 Habs nur kurz überflogen, aber was ist wenn du die ein eigenes binäres Format machst. Zuerst schreibst du in eine Datei den Namen der Quelldatei und danach die Bytes der Quelldatei, fertig. Lies dich bei Msdn mal in Binaryreader/Binarywriter ein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 14. Juni 2014 Teilen Geschrieben 14. Juni 2014 Moin! Du arbeitest mit dem .net-Framework, also brauchst Du keine eigene Copy-Methode schreiben, sondern kannst mit File.Copy arbeiten. Wenn Du die Sicherungskopie immer überschreiben willst, kannst Du den Parameter "overwrite" einfach auf true setzten, dann musst Du auch nicht prüfen, ob die Datei existiert. Ich verstehe nicht ganz, was Du damit meinst "den namen der Quelldatei an die Zieldatei zu übergeben.". Der Name ist doch gleich, nur die Erweiterung ist anders, d.h. Du musst einfach die Endung abtrennen und die Endung "bak" anfügen. Stichworte zur Recherche wären hier String.LastIndexOf oder Regex(vielleicht noch etwas viel für den Anfang). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SilentDemise Geschrieben 14. Juni 2014 Teilen Geschrieben 14. Juni 2014 warum so kompliziert? es gibt doch direkt methoden um mit der Endung zu arbeiten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lempy Geschrieben 14. Juni 2014 Autor Teilen Geschrieben 14. Juni 2014 Hallo Pointerman "Quelldatei an Zieldatei" übergeben. Meine Quelldatei habe ich schon in einen Ordner. Also der Name Text.doc ist schon vergeben und diese Datei möchte z. B. zum Bearbeiten öffnen. Beim Öffnen soll eine weitere Datei entstehen, die den selben Inhalt hat wie meine Text.doc bevor ich meine Änderungen vorgenommen habe. Diese Datei soll dann aber als Text.bak in z. B. einen anderen Ordner "gesichert" werden. Quelle = Text.doc, Ziel = Text.bak in ? Ordner. Die "Variable" Dateinamen bezieht sich auf Text.doc aber aus dem doc soll ein .bak werden. Da fehlt mir die Idee wie ich das anstellen. Wie trennen ich die Endung ab? Zu Repac3r MSDN ist sehr gut, aber auch nur wenn man nicht wie ich Anfänger ist und das ganze in seiner engbemessenen Freizeit macht. Vieles verwirrt einen Anfänger nur. Das sind die meisten Artikel, die sich mit C++/CLI und Forms beschäftigen. Ich brauche eher so eine Hilfe wie " ... für Dummys". Es ist nicht immer leicht den Einstieg wieder ordentlich zu finden. Zu SilentDemise: Na ja, ist so mein ding. Ich denke oft über tausend Ecken und daher viel zu kompliziert. Aber es hilft mir auch dabei Dinge von anderen Seiten zu betrachten. Auf jeden Fall werde ich mir Eure Stichworte notieren und danach Recherche betreiben. Melde mich danach. Lieber Gruß lempy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick_C64 Geschrieben 18. Juni 2014 Teilen Geschrieben 18. Juni 2014 Hallo lempy, Zitat:"Die "Variable" Dateinamen bezieht sich auf Text.doc aber aus dem doc soll ein .bak werden. Da fehlt mir die Idee wie ich das anstellen." Suchst du zufällig (einfach nur) nach Möglichkeiten zur Stringmanipulation in .Net (Dein Stichwort!) zum Beispiel "Ersetzen" (Replace) ? Als Tip! Behalte doch die alte Dateierweiterung bei und füge nur ein .bak an somit weiss man auch auf anhieb um was für eine Sicherung es sich handelt ! Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.