Variablen konvertieren



  • Hab umgeändert. So läft´s immer 😉

    Hab das delete am ende der Methode stehen gehabt. Hat trotzdem nicht funktioniert. Weiß nicht warum.

    TSCHAU, Sigi



  • ja, jetzt wird die txt datei richtig geschrieben...
    Danke!!!

    aber:
    😞

    Die txt datei ist jetzt in ordnung, aber wenn ich mit der Anwendung den text einlesen will, ist das ÌÌÌÌ - Problem wieder da 🙄

    Es müssen also alle Ì's aus dem CString gelöscht werden, bevor dieser ins Textfeld geladen wird.

    Weiss grad jemand wie?
    *grübel,lern,büffel*



  • Poste mal deinen Source mit dem du die txt ausließt.

    In der Datei sind keine Sonderzeichen mehr.

    Vermudlich ließt du wieder mit einem char[1000] ein, oder.



  • Ja, ich lese sie mit nem char [1000] aus.

    Hier nochmal alles:

    ...
    
    //datei einlesen
    void CVersuch2Dlg::OnButton1() 
    {
             TCHAR str[1000];
    	CFile datei( "chatdatei.txt", CFile::modeRead ); 
    	datei.Read( str, sizeof( str ) ); 
    	datei.Close();
    	m_strEdit1 = str; 
    	UpdateData( FALSE ); // Variablen ---> Felder 
    
    }
    
    //datei schreiben
    void CVersuch2Dlg::OnButton2() 
    {
    
    	TCHAR str[1000];
    	UpdateData( TRUE ); 
    	_tcscpy( str, m_strEdit2 ); // kopiert m_strEdit2 in str 
    	CFile datei( "chatdatei.txt", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite   ); 
    	datei.Seek( 0L,CFile::end   ); 
    	datei.Write( m_strEdit2, sizeof( char )*m_strEdit2.GetLength() ); 
    	datei.Close(); 
    
    }
    
    ...
    


  • So am Einfachsten:

    void Lesen()
    {
    	CStdioFile file;
    	if(file.Open("C:\\Datei.txt",CFile::modeRead))
    	{
    		CString line;
    		CString text;
    		while(file.ReadString(line))
    			text += line + "\r\n";
    		// Text setzen bzw. UpdateData
    	}
    }
    
    void Schreiben()
    {
    	CStdioFile file;
    	if(file.Open("C:\\Datei.txt",CFile::modeCreate | CFile::modeWrite))
    	{
    		CString text;
    		// text holen bzw. UpdateData
    		file.WriteString(text);
    	}
    }
    

    Statt der Variable 'text' kannst du natürlich auch deine Membervariable m_strEdit1 nehmen.



  • Hier noch mein Senf (weil ich ihn schon mal vorbereitet habe 😉 )

    void CTesttestDlg::OnButton2() //READ
    {
        CFile datei( "chatdatei.txt", CFile::modeRead );
    
    	for(unsigned long i=0;i<(datei.GetLength()/sizeof(char));i++)
    	{
    		char c = '\0';
    		datei.Read( &c, sizeof(char));
    
    		m_strEdit1 += c;
    	}	
        datei.Close();  
        UpdateData( FALSE ); // Variablen ---> Felder  
    }
    
    void CTesttestDlg::OnButton3() //WRITE
    {
        UpdateData( TRUE );  
    
        CFile datei( "chatdatei.txt", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite   );  
        datei.Seek( 0L,CFile::end   );  
        datei.Write( m_strEdit2, sizeof( char )*m_strEdit2.GetLength() );  
        datei.Close(); 
    }
    

    TSCHAU, Sigi



  • Danke für eure Hilfe!



  • @sigi:

    nen kleinen fehler hat dein script doch noch 😉

    bevor die datei eingelesen wird, sollte man folgende zeile einfügen:

    m_strEdit1="";
    

    Sonst verdoppelt sich der text ein bisschen....

    tschüs,
    und danke nochmal!
    👍



  • 🙂



  • 🙂


Anmelden zum Antworten