Auslesen aus einer TextBox (Visual C++ 2005)



  • Hallo,
    ich habe bereits ein Jahr Java programmiert und nun möchte ich C++ lernen.

    Nun habe ich ein kleines Problem:
    Ich habe mit dem "Visual Studio 2005" eine "Windows Forms-Anwendung" erstellt. Da möchte ich ein simples Programm machen mit zwei TextBoxen. In die eine soll man was reinschreiben und per Button in eine Textdatei abspeichern. Mit der anderen soll man es wieder auslesen. Der Dateiname steht in einer dritten TextBox.

    Dabei stehe ich nur noch vor einem Problem: Das auslesen aus einer TextBox.
    Ich versuche es aktuell so:

    string dateiname = tbDateiname->Text;
    

    Aber das geht nicht. Dabei kommt eine Fehlermeldung, dass ein "System::String ^" nicht in einen "std::basic_string<_Elem,_Traits,_Ax>" umgewandelt werden kann.

    Was soll das?
    Gibt es in C++ verschiedene Arten von Strings?
    Wie lese ich dann etwas aus der TextBox aus?

    Bitte helft mir, wie ich das Problem lösen soll.



  • warum nicht

    String^ dateiname = tbDateiname->Text;
    

    ?

    wenn du eh das framework benutzt, benutz doch auch deren variablen !?

    ps. framework != MFC = falsches forum



  • Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • DS schrieb:

    Was soll das?
    Gibt es in C++ verschiedene Arten von Strings?

    Jup, es steht jedermann frei, eine eigene string-Klasse zu implementieren.



  • Mr Evil schrieb:

    warum nicht

    String^ dateiname = tbDateiname->Text;
    

    ?

    wenn du eh das framework benutzt, benutz doch auch deren variablen !?

    Ok, damit geht es schon mal etwas auszulesen.

    Aber beim Datei schreiben kommt ein anderer Fehler.

    Ich mache das mit dem Datei schreiben so:

    // Dateiname und Text auslesen
    String^ dateiname = tbDateiname->Text;
    String^ text = tbEingabe->Text;
    
    // Datei schreiben
    ofstream dateiSchreiben;
    dateiSchreiben.open(dateiname.c_str(), std::ios::out);
    dateiSchreiben << text;
    dateiSchreiben.close();
    

    So hat es bisher mit nem "string" auch funktioniert. Mit dem "String^" geht es aber nicht, weil er dann in der Zeile mit der open()-Methode nen Fehler bringt.

    Was soll das überhaupt mit den unterschiedlichen Strings?
    Wie mache ich das mit der Dateiverarbeitung?

    Schon mal Danke für die Antworten

    Mr Evil schrieb:

    ps. framework != MFC = falsches forum

    Sorry



  • Wenn Du .NET verwendest solltest Du darauf achten, dass Du .NET nicht mit anderen Dingen unnötig durcheinander bringst (und Dir somit das Leben selber schwer machst!).

    Verwende System::IO::StreamWriter/StreamReader
    http://msdn2.microsoft.com/de-de/library/system.io.streamwriter.aspx

    z.B.

    How to: Read Text from a File
    http://msdn2.microsoft.com/en-us/library/db5x7c0d.aspx

    How to: Write Text to a File
    http://msdn2.microsoft.com/en-us/library/6ka1wd3w.aspx



  • Jochen Kalmbach schrieb:

    Wenn Du .NET verwendest (...)

    Jetzt muss ich mal eine eventuell blöde Frage stellen, aber in C++ bin ich ja noch Anfänger als darf ich das 😃

    Ich programmiere mit dem "Visual Studio 2005" C++.

    Woher merke ich da ob ich MFC oder .NET verwende?
    Was ist überhaupt der Unterschied?



  • Also langsam vergeht mir echt die Lust an C++.

    Seit fast einer Woche das gleiche Problem und weder Google noch ein Forum kennt ne Antwort darauf, was das mit den verschiedenen Strings soll.

    Auf keiner einzigen Seite ist irgendein Beispiel wie man überhaupt einen Text aus einer textBox ausliest. Außer natürlich mit diesem komischen "String^", mit dem man dann aber sonst nix anfangen kann weil Visual C++ unfähig ist das Ding umzuwandeln.

    Ist es denn so schwer einfach einen Text aus einer textBox auslesen zu wollen und den dann in einer Textdatei abzulegen?



  • String umwandeln:

    System::String => char* oder wchar_t*
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-158664.html

    char*, wchar_t* oder TCHAR* nach System::String
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-158666.html


Anmelden zum Antworten