(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?


Log in to reply