Textdatei auslesen und im Model/View Programm darstellen



  • hallo,
    ich habe ein Programm was bisher aus 2 Textfeldern den Inhalt nimmt, überprüft ob sie bisher schon existieren und dann sortiert in einem QTableView darstellt.
    Nun würde ich jedoch gerne das man wenn man auf einen anderen Button klickt, eine Textdatei öffnen kann. Aus dieser sollen dann die Wörter ausgelesen werden die durch ein " , " getrennt sind.
    Nur leider fehlt mir der Ansatz.
    Sollte das auslesen etc. in meinem Model oder in meiner View in der klickmethode stattfinden ?
    Ich wäre euch sehr dankbar wenn mir jemand eine kleine Hilfestellung gibt, da ich zur Zeit nicht recht weis wie ich anzufangen habe.
    Das ist meine setDataMethode aus meinem Model. der ich dachte mithilfe des ints am ende kann ich unterscheiden was er in der Methode machen soll. wenn man Auf den Button für text addn klickt, hängt er hinter die strings eine 5 an , wenn man es aus einem file hat , dann eine 12 ..
    Aber ich komme nicht so recht klar. Wie gesagt über eine kleine Hilfestellung mit erklärung evtl. wäre ich glücklich.
    Danke
    [code="cpp"]bool Model::setData(QString name,QString value, int FileOrText )
    {
    if(FileOrText == 5)
    {
    beginInsertRows(QModelIndex(), names.size(), names.size());
    names.push_back(name);
    values.push_back(value);
    endInsertRows();
    qDebug() << "inhalt name:"<< name;
    qDebug() << "inhalt value:"<< name;

    std::cout << names.size() << std::endl;
    QModelIndex topLeft = createIndex(0,0);
    QModelIndex bottomRights = createIndex(names.size()-1,1);
    //emit a signal to make the view reread identified data
    emit dataChanged(topLeft, bottomRights);
    return true;
    }
    else if(FileOrText == 12)
    {
    QFile file("/verzeichnisPfad.txt");
    QString dd;
    int rowCountInt = this->rowCount();

    for(int row=0; row < this->rowCount(); row++)
    {
    }

    }[code="cpp"]



  • Nun habe ich eine andere Idee ,
    Ich brauche aber da irgendwie 2 Strings raus, die ich dann an mein Model übergeben kann :

    void View::FileButtonClicked()
    {
    	QString fileName;
        fileName = QFileDialog::getOpenFileName(this, tr("Datei Oeffnen"),"",
                                                    "Alle Dateien (*.txt)");
    	//QString in QFile
            QFile file (fileName);
    
    	//Status ob File gelesen werden kann
    
        if (file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::information(this, tr("ERROR"), tr("Daten konnten icht eingelesen werden"));
        return;
    }
                QTextStream stream (&file);
    
              while (!file.atEnd())
              {
                  QString line = stream.readLine();
                  QStringList list = line.split(",");
    
    		  }
    

Anmelden zum Antworten