Listbox mit Strings befüllen



  • Ich hänge nun schon seit 3 Tagen an dieser Aufgabe und zwar will ich eine Textdatei Zeilenweise einlesen und diese Zeilen per Add in die Listbox bringen. Dafür verwende ich zurzeit folgendes:

    void ReadFromFile(const string& textName, string& text)
    {
        string str;
        fstream filestr;
    
        filestr.open(textName.c_str());
    	while (!filestr.eof())
            {
                getline (filestr,str); // copy to string from file..
                text += str;
    
            }
        filestr.close();
    
    }
    
    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
    		        {
    					string text;
                                            ReadFromFile("/liste.txt", text);
    					listBox1->Items->Add(text);
    
    			}
    

    Das Problem ist es funktioniert prima in einer KonsolenAnwendung wenn ich die ausgabe auf cout umleite aber eben nicht für listbox Add. Es kommt ein kompilierfehler von wegen er will im Add keinen string sondern ein Object ^ ...

    Falls sich jemand erbarmen würde und mir helfen würde währe sehr nett 🙄

    Ach und falls jemand noch einen Tip dafür hat das die Text Datei 2 Spaltig werden soll und ich von jeder Zeile die 2 Teile auslesen kann währe das nochmehr netter ^^



  • Tja, das passiert wenn man klassisches C++ und C++/CLI mischt. Solltest dich entscheiden. Die ListBox gehört zu .Net und erwartet die .Net Datentypen, nicht die standard C++ Typen.



  • ahjo ? könnte einiges erklähren aber wie würde ich das dann .NET konform machen ? Oo



  • Schau dir einfach in der MSDN Lib die Doku zur ListBox an, und zum Dateieinlesen würde sich Streamreader anbieten. Da findest genug Beispiele.



  • aus msdn hab ich ja diesen code als schnipsel gefunden gehabt. Streamreader werd ich nu mal versuchen hoffe das geht besser .thx



  • So mit Streamreader schonmal ein fehlerfreies Kompilieren möglich aber es werden nun keine Zeilen zur Listbox geadded 😮

    listBox1.BeginUpdate();
                using (StreamReader sr = new StreamReader("c:/liste.txt"))
                {
                    String line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        listBox1.Items.Add(line);
                    }
                }
                listBox1.EndUpdate();
    

    Hülfe 🙂



  • Du solltest "null" gegen "nullptr" austauschen...



  • wie würd ich das machen? nullptr einfach einsetzen geht nid.

    aber das komische ist ja wenn ich ein items.add nach den ganzen zeug zum test einsetze passiert auch nigs Oo



  • Ist das nun C# oder soll das wirklich so im C++/CLI stehen ?


Anmelden zum Antworten