Speichern unter
-
Hallo alle zusammen,
ich bin noch ein ganz blutiger Anfänger in Sachen C++ und hab deswegen wahrscheinlich für die meisten hier ne ganz einfache Frage.
Ich möchte einen Datensatz, welcher in einer Variablen DR vorhanden ist, in einer Datei speichern.
Das einzige was ich dazu weiß ist, dass man über CFileDialog(FALSE) an die Sache rangeht.CFileDialog m_svFile(FALSE, "dat", "*.dat"); if(m_svFile.DoModal()==IDOK) { m_strSave = m_svFile.GetPathName(); UpdateData(FALSE); }Soweit hab ich das mal gemacht, aber ih weiß nicht, wo ich die Variable angeben muss, die ich abspeichern will.
Mit "m_strSave = m_svFile.GetPathName();" will ich mir dann den Pfad anzeigen lassen, in dem die Datei gespeichert wird. Das funktioniert auch, nur die Datei wird nicht gespeichert (also auch nicht mal ne leere Datei, da ich ja keine Variable angegeben habe).Ich hoffe ihr könnt mir helfen bzw. habt verstanden worauf ich hinaus will.
MfG
Robert
-
CFileDialog fragt nur nach dem Dateinamen, das Speichern mußt du schon selber übernehmen - Datei öffnen (den Namen hast du ja in m_strSave), alle Daten reinschreiben und Datei wieder schließen.
-
Casco83 schrieb:
Hallo alle zusammen,
CFileDialog m_svFile(FALSE, "dat", "*.dat"); if(m_svFile.DoModal()==IDOK) { m_strSave = m_svFile.GetPathName(); UpdateData(FALSE); }Robert
So in etwa sollte das aussehen:
CFileDialog m_svFile(FALSE, "dat", "*.dat") { if(m_svFile.DoModal()==IDOK) { m_strSave = m_svFile.GetPathName(); UpdateData(FALSE); /* kannst du weg lassen !! */ { int fd; /* if((fd = _open(m_strSave, _O_WRONLY)) < 0) return -1; /* edit */ /* if((fd = _creat(m_strSave, S_IWRITE)) < 0) return -1; */ /* brauchst du ja gar nicht anlegen :)*/ /* write your file */ if(_write(fd, dein_dateinsatz_als_void*, sizeof(dein_datensatz)) == 0) { /* fehler, nichts wurde geschrieben */ close(fd); return -1; } } } }Schau mal in die MSDN unter _create und _write, das hilft weiter. Solltes du mit MFC arbeiten, kannst du auf auf das Serialisieren zurück greifen.
Ich hoffe es hilft,
Gruß codeman
-
...und solltest Du mit C++ arbeiten, dann kannst Du auf streams zurückgreifen.
-
Vielen dank euch allen. Bin jetzt voll im Bilde und es funktioniert.