Daten Speicher Problem



  • Ich habe einen Button mit dem ich den Inhalt aus 6 Eingabefenstern in eine Datei speichern möchte. Ich nutzte dazu folgendes

    void CSpeichernDlg::OnButton1() 
    {
    TCHAR str[1000];
    UpdateData( TRUE );
    _tcscpy( str, m_strEdit1);
    _tcscpy( str, m_strEdit2);
    _tcscpy( str, m_strEdit3);
    _tcscpy( str, m_strEdit4);
    //_tcscpy( str, m_strEdit5);
    //_tcscpy( str, m_strEdit6);
    CFile datei( "C:\\Kunden.txt", CFile::modeCreate | CFile::modeWrite );
    datei.Write( str, sizeof( str ) );
    datei.Close(); 	
    }
    

    allerdings steht dann in der Datei nur so komische Zeichen -.-
    hat jemand nen Rat ?



  • 1. Du schreibst ja eigentlich nur den letzten Eintrag in "str"
    2. Es werden ja immer 1000 Zeichen rausgeschrieben, egal wieviel im String wirklich drin steht... (gedacht war wohl: _tcslen(str)*sizeof(TCHAR))
    3. So wirst Du die Daten kaum wieder vernünftig einlesen können



  • Kannste das evtl mal an meinem Beispiel zeigen wie des aussehn müsste?



  • steve22(off) schrieb:

    Kannste das evtl mal an meinem Beispiel zeigen wie des aussehn müsste?

    Du meinst, so wie Du es gemacht hast, nur korrekt?

    CString str;
      str += m_strEdit1;
      str += m_strEdit2;
      str += m_strEdit3;
      str += m_strEdit4;
    
      CFile datei(_T("C:\\Kunden.txt"), CFile::modeCreate | CFile::modeWrite );
      datei.Write(str.GetBuffer(), str.GetLength() * sizeof(TCHAR) );
      datei.Close();
    

    Oder ganz anders, so dass man die Datei auch wieder einlesen kann!?


Anmelden zum Antworten