Listbox Dateiinhalte ersetzen
-
Hallo zusammen,
ich habe eine Listbox, gefüllt mit einigen Dateinamen (dateipfad\dateiname)
Wenn ich nun einen Dateiname mittels Doppelkick auswähle, möchte ich, dass der Dateiname (Bsp: Datei01) beibehalten wird (für spätere Anwendung), aber der inhalt von einer anderen Datei (Bsp Datei02) in diese Datei kopiert wird.
Anders formuliert: Datei02 umbenennen in Datei01 und die "alte Datei01" durch die "neue Datei01" ersetzen.
Hoffe ich hab mich klar ausgedrückt
Hier mein Versuch
private: System::Void ListBox1_MouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { openFileDialog1->Filter = "kon files (*.kon)|*.kon|All files (*.*)|*.*"; openFileDialog1->FileName = ""; openFileDialog1->ShowDialog(); if(openFileDialog1->FileName != "") { pin_ptr<unsigned char> qChars = GetAsciiString(openFileDialog1->FileName); std::string s1((char*)qChars); String^str = static_cast<String^>(ListBox1->Items[ListBox1->SelectedIndex]); pin_ptr<unsigned char> rChars = GetAsciiString(str); std::string s2((char*)rChars); //if(!CopyFile((LPCTSTR)(char*)s1.c_str(), (LPCTSTR)(char*)s2.c_str(),true))//MA CopyFile((LPCTSTR)(char*)s1.c_str(),((LPCTSTR)(char*)s2.c_str()), true);//CW if(((LPCTSTR)(char*)s1.c_str())!= ((LPCTSTR)(char*)s2.c_str()))//CW MessageBox(0, //Besitzer des Fensters 0 = kein Besitzer TEXT("Fehler beim Kopieren der Datei"), //Text TEXT("ERROR"), //Überschrift MB_OKCANCEL | MB_ICONWARNING); //Buttons und Icons } }
Danke für eure Hilfe.
Gruß, wäms
-
pin_ptr<unsigned char> dient zur nötigen Umwandlung von System::strin^ zu std::string
-
waems01 schrieb:
pin_ptr<unsigned char> dient zur nötigen Umwandlung von System::strin^ zu std::string
Nö, da ist nichts nötig, File::Copy nimmt String^ Paramter.
http://msdn.microsoft.com/de-de/library/c6cfw35a.aspx
und umbenennen geht mit File::Move.Die Frage wurde hier von Jochen schon beantwortet
http://www.c-plusplus.net/forum/313206Dort wurde dir auch gesagt, du sollst nicht Win32 und C++/CLI mischen.
Die MessageBox hat auch ein .net Gegenstück
http://msdn.microsoft.com/de-de/library/519bytz3%28v=vs.110%29.aspx
-
Bitte, bitte: Erspar Dir viel unnötigen Stress (und uns unnötige Fragen) und nimm C#!!!!
-
Hallo,
ich hab ein sch...önes Projekt, das im Rahmen eines Praxissemesters fertig werden muss.
Ich studiere Elektrotechnik und hab nur Ahnung von (einigen, wenigen) Grundlagen in C/C++ und da auch nur Konsolenanwendungen.Ich bin komplett ins kalte Wasser geworfen worden. Und momentan weder Zeit, noch großartig Lust mich mit verschiedenen Programmiersprachen zu beschäftigen. Das Projekt soll nur möglichst schnell fertig werden.
Was ist denn bitte der Unterschied zwischen Win32 und C++/CLI?Projektvorgabe ist C/C++, also kein C#.
Ich hab mir das ganze zu C# durchgelesen und will mich auch nach meinem Projekt damit beschäftigen. Aber nicht jetzt. Das Ding muss mittels C/C++ möglichst schnell fertig werden. Auch wenn es mich stresst.könnt mir einfach einer ein stück mustercode schicken, des dieses kleine explizite Problem löst?
Danke schonmal für eure Mühen. (Hoffe ihr versteht meine Situation jetzt)
-
waems01 schrieb:
Projektvorgabe ist C/C++, also kein C#.
Dann verstößt du gegen deine Projektvorgabe. C++/CLI ist als "Kleber" zwischen C/C++/Win32 und .net/C#/VB gedacht, also eine Art "Hybrid".
Ein Beispiel gibt es in den Links.
Wenn du nicht
File::Copy(Von, Nach); // Von und Nach sind String^ Variablen
schreiben kannst, ist dir eh nicht zu helfen.
-
...
-
Und ob man File::Copy (in C++/CLI) oder File.Copy (in C#) schreibt, macht auch keinen Unterschied.
Man könnte auch in C# das CopyFile aus der WinApi über PInvoke aufrufen, das ist dann mindestens genau so richtig, wie es aus C++/CLI zu tun.
-
Die Antwort von Swordfish war die einzige hilfreiche --> Vielen Dank!!
Die anderen hatten sich ichre Zeit gerne sparen können. Ein etwas freundlicherer Schreibstiel würde euch nicht schaden! Seit ihr zum rummaulen im Forum, oder zum helfen?
Naja, jetzt läuft das Ding.
Ich dank euch trotzdem. Ihr habt mich dazu gebracht, dass ich mich in nächster Zeit mit C# beschäfftige.
Schöne Grüße und bis zur nächsten doofen Frage,
wäms
-
waems01 schrieb:
Die Antwort von Swordfish war die einzige hilfreiche --> Vielen Dank!!
Hast du deinem Code was vorgesungen oder wie ?
Aber wie ich schon sagte
nn schrieb:
Wenn du nicht
File::Copy(Von, Nach); // Von und Nach sind String^ Variablen
schreiben kannst, ist dir eh nicht zu helfen.
Das ist dann halt so.
waems01 schrieb:
bis zur nächsten doofen Frage
Wenn du dann wieder C++ machen musst, nimm die Tablette aus der Fernseh-Reklame, von denen man weniger müssen muss.