Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » fehler beim speichern / laden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
28.08.2004, 20:51 Uhr
A-l-e-x



Hi,
ich versuche gerade Variablen zu speichern und zu laden. Hab mal was gefunden, doch funktioniert bei mir nicht so richtig. Es sollte beim Start des Programms laden und beim beenden speichern:

C++:
// Variablen
CString m_x;
CString m_y;
// ...

// laden
BOOL CKostenOptimiererDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here

    ifstream ifs( "save.dat", ios::binary | ios::nocreate);
    ifs.read( (char*)&m_x, sizeof(m_x) );
    ifs.read( (char*)&m_y, sizeof(m_y) );
    ifs.close();
    UpdateData(FALSE);

    return TRUE;  // return TRUE  unless you set the focus to a control
}

// speichern
void CKostenOptimiererDlg::OnDestroy()
{
    CDialog::OnDestroy();
    
    // TODO: Add your message handler code here
    UpdateData(TRUE);
    ofstream ofs( "save.dat", ios::binary );
    ofs.write( (char*)&m_x, sizeof(m_x) );
    ofs.write( (char*)&m_y, sizeof(m_y) );
    ofs.close();

    
}



Der Code läd sonderbare Zeichen. Ich weis nicht warum.

mfg A-l-e-x
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.08.2004, 23:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also so das recht unorthodoxe schreiben funktionieren sollte (was du ja daran erkennen kannst das die datei so aussieht wie du es dir vorstellst....
solltest ud beim einlesen erstmal in ein std::string einlesen und nachher mx=mystring.c_str() setzen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.08.2004, 13:19 Uhr
A-l-e-x



meinst du etwa:

ifstream ifs( "save.dat", ios::binary | ios::nocreate | std::string);

Tja hab 'n fehler. Erkennt std nicht. Und was ist mystring? Am bessten wär jetzt ein kleiner Beispiel.

mfg A-l-e-x
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.08.2004, 19:12 Uhr
A-l-e-x



hab jetzt hinbekommen, dass der compiler std akzeptiert (durch <sstream> einbinden). Doch will er

ifstream ifs( "save.dat", ios::binary | ios::nocreate | std::string);

nicht akzeptieren. (illegal use of expreshin). Tja und ich verstehe immer noch nich das mit mystrig. Kann mir jemand helfen

Danke vorraus

A-l-e-x
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.08.2004, 20:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja ich hab das jetzt nicht getestet aber ich meinte so in der art
das schreiben funktioniert ja anscheinden oder?

C++:
string tmp;
ifstream ifs( "save.dat", ios::binary | ios::nocreate);
ifs>>tmp;
m_x=tmp.c_str();
ifs>>tmp;
m_y=tmp.c_str();
ifs.close();


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
31.08.2004, 19:06 Uhr
A-l-e-x



Tja ich hab 'n Problem. Nämlich ich kann tmp nich deklarieren. Er erkennt string nicht. Ich hab schon versuch <string.h> oder <string> zu inkludieren. Bringt aber nicht viel. Was soll ich machen?

mfg A-l-e-x
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
31.08.2004, 19:35 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Was soll ich machen?


selbstmord ist auch ne lösung


aber im ernst...
bei den includes brauchst du

C++:
#include <iostream>  //ob du den auch brauchst weiss ich gerade nicht aus dem hut
#include <string>
#include <fstream>



wenn du noch ein using namespace std verwendet hast (was ich nicht empfehle würde wovon ich aber ausgegangen bin da du auch ofstream und ifstream einfach so verwendet hast) müsste das mit dem string so gehen an sonsten musst du std::string vorschreiben
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.09.2004, 13:07 Uhr
A-l-e-x



Gut. Klappt jetzt zum Teil. Kommischerweise kann ich jetzt std::ios::nocreate nicht mehr übergeben. Jetzt stürzt das Program zwar nach dem einlesen der Daten nicht ab, gibt aber Schwachsinn raus.

mfg A-l-e-x
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.09.2004, 13:25 Uhr
Tommix



Hallo,
ich halte von diesem Mischmasch aus verschiedenen Libraries (MFC, STL) nichts. Windalf ist ein Fan von.
Aber

C++:
m_x=tmp.c_str();


wandle std::string in C-String, wandle diesen anschließend in MFC-CString. Wozu?

C++:
BOOL CKostenOptimiererDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here

    CStdioFile f("save.dat", CFile::modeRead | CFile::typeText);

    f.ReadString(m_x);
    f.ReadString(m_y);

    UpdateData(FALSE);

    return TRUE;  // return TRUE  unless you set the focus to a control
}

// speichern
void CKostenOptimiererDlg::OnDestroy()
{
    CDialog::OnDestroy();
    
    // TODO: Add your message handler code here
    UpdateData(TRUE);

    CStdioFile f("save.dat", CFile::modeWrite | CFile::modeCreate | CFile::typeText);

    f.WriteString(m_x+'\n');
    f.WriteString(m_y+'\n');
}


(Ungetestet und ohne Fehlerhandling.)

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.09.2004, 17:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Tommix

Zitat:

ich halte von diesem Mischmasch aus verschiedenen Libraries (MFC, STL) nichts. Windalf ist ein Fan von.


das stimmt so nicht. Ich versuche eigentlich immer Datenverarbeitung von GUI zu trennen und schreibe für solche dinge extra funktionen möglichst nach ansi-standard...

Die GUI ist dann halt nur zum anzeigen und nicht mehr...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: