String Eingabefeld



  • Hallo,
    ich benutze Microsoft Visual Studio C++ 6.

    Ich habe ein Programm erstellt, in dem es eine Editbox gibt. Der Variablen Typ ist Cstring. Wenn ich dort zB. hallo eingebe und m_editbox in eine Datei schreibe erhalte ich "000343CC". Im Folgenden möchte ich aber mit "hallo" weiterarbeiten.
    Ich denke es liegt daran, dass der Variablentyp Cstring und nicht String ist.
    Weis jemand, wie ich CString in String umwandeln kann bzw. ob der Variablentyp der Editbox auf String gesetzt werden kann?



  • WIE schreibst Du es denn in eine Datei?



  • ofstream schreiben;
    string datei = "test.txt";
    schreiben.open(datei.c_str(), ios_base::out);
    schreiben<<m_editbox;
    schreiben.close();
    


  • Was soll den "m_editbox" sein? Ein CEdit?
    Dann nimm lieber:

    CString val;
    m_editbox.GetWindowText(val);
    
    schreiben << CT2CA(val);
    


  • ich hab grad erst angefangen mit MFC zu arbeiten, daher weis ich nicht was CEdit ist :>
    m_editbox ist der variablenname der editbox und ist vom typ Cstring (mit dem ClassWizard von Visual Studio erstellt).

    Edit:

    Ich hab deinen Code grad mal eingefügt:

    C:\Programme\Microsoft Visual Studio\MyProjects\ProjektDlg.cpp(215) : error C2039: [b]'GetWindowTextA' : is not a member of 'CString'[/b]
            c:\programme\microsoft visual studio\vc98\mfc\include\afx.h(368) : see declaration of 'CString'
    C:\Programme\Microsoft Visual Studio\MyProjects\ProjektDlg.cpp(216) : error C2065: [b]'CT2CA' : undeclared identifier[/b]
    

    Edit2:

    Ich sehe gerade, dass - unabhängig was ich in die Editbox schreibe - immer "00034AF4" in meine Datei geschrieben wird.
    Nochmal zu meinem Vorgehen: Ich habe im Dialogfeld eine Editbox mit der ID IDC_TEST erstellt. Mit dem ClassWizard habe ich eine Variable hinzugefügt vom Typ CString mit dem Namen m_test2. Dieses test2 lasse ich dann über ofstream in eine Datei schreiben. Unabhängig welchen Wert ich in die Editbox eingebe, es wird immer "00034AF4" in die Datei geschrieben.
    Hat jemand eine Idee, woran das liegen könnte 😕

    Edit3:
    Problem gelöst.

    CString eingabe=m_test2;
    string eingabe2((LPCTSTR)eingabe);
    schreiben<<eingabe2;
    


  • Hat jemand eine Idee, woran das liegen könnte

    Bevor Du in die Datei schreibst, musst Du den Wert aus dem Edit-Feld erst mal in die Variable schreiben.
    Mach vor der Dateiarbeit mal

    UpdateData(TRUE);
    

    Problem gelöst.

    Mit dem Dateischreiben?



  • Du solltest es also so machen:

    UpdateData(TRUE);
    schreiben << CT2CA(m_editbox);
    


  • Problem gelöst.

    Mit dem Dateischreiben?

    Jo. Mit dem Code den ich als letztes eingefügt habe funktioniert das mit dem string in Datei schreiben.


Anmelden zum Antworten