(Gtkmm/C++)Wie kann man Text aus einer Datei in einen Textbuffer schreiben?
-
Hallo
Ich will Text aus einer Textdatei in einen textbuffer laden. Allerdings funktioniert mein Code nicht wirklich.Das OS ist Archlinux.
Die "Load-Funktion":
void HauptWindow::on_LoadB_clicked() { std::ifstream myfile; Gtk::FileChooserDialog dialogload("Datei auswaehlen",Gtk::FILE_CHOOSER_ACTION_OPEN); dialogload.set_transient_for(*this); dialogload.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); dialogload.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); int result = dialogload.run(); std::string dateiname,line; line=""; switch(result) { case(Gtk::RESPONSE_OK): { dateiname = dialogload.get_filename(); textbuffer1->set_text(""); myfile.open(dateiname.c_str()); while(getline(myfile,line)); { line=line+'\n'; textbuffer1->insert((textbuffer1->end()),line.c_str()); } myfile.close(); break; } case(Gtk::RESPONSE_CANCEL): { break; } default: { break;
Mein Problem ist nun das in den Textbuffer etweder gar nichts oder nur eine Zeile eingefügt wird.
Das nutzen einer andern while-Schleifen Bedingung wie myfile.good() oder !myfile.eof() führt zu Endlosschleifen in diesem Fällen stand die getline-Funktion auch inerhalb der Schleife.
Weiß jemand wo mein fehler liegt?