Thema: c++ und Qt
Einzelnen Beitrag anzeigen
Ungelesen 23.12.11, 15:03   #4
Quabla
Mitglied
 
Registriert seit: Oct 2010
Beiträge: 296
Bedankt: 151
Quabla ist noch neu hier! | 0 Respekt Punkte
Standard

jetzt nervt nur noch dieses dämliche QString...
also ich habe nun den pfad+dateinamen der zu öffnenden datei in QString file. fstream nimmt als parameter ja bekanntermaßen nur char*, also habe ich in meiner ersten lösung den QString nach char* convertiert. Trotzdem wird die datei nicht geöffnet, es erscheint immer die msgbox("Fehler beim öffnen der Inputdatei"). ich hab mir das array cfile auch mal ausgeben lassen, da steht genau der dateipfad drin den ich haben will.

Code:
    QByteArray tmp = file.toLocal8Bit();     //QString file nach char* cfile cenvertieren
    char *cfile = tmp.data();

    ifstream input;
    input.open(cfile, ios::in);


    if(!input.is_open()){
        QMessageBox msgBox;
        msgBox.setText("Fehler beim Öffnen der Inputdatei!");
        msgBox.exec();
        return;
    }

    string str;
    while(getline(input, str)) Tabelle.push_back(str);
    input.close();

dann hab ich das ganze nochmal mit QFile versucht, hier kommt das selbe problem

Code:
    QFile input(file);
      if (!input.open(QIODevice::ReadOnly | QIODevice::Text)){
          QMessageBox msgBox;
          msgBox.setText("Fehler beim Öffnen der Inputdatei!");
          msgBox.exec();
          return;
      }

      while (!input.atEnd()) {
          QByteArray line = input.readLine();
          Tabelle.push_back(line.data());
      }
weis jemand wo der fehler liegt?

edit:

fehler gefunden... die meldung, die kam war nicht "konnte inputdatei nicht öffnen" sondern "konnte output datei nicht öffnen" und das lag ganz einfach daran, dass ich die mit

output.open("tab.tex", ios::in);

öffnen wollte, richtig ist natürlich

output.open("tab.tex", ios:ut);

nach so nem kleinen tippfehler kann man echt lange suchen
Quabla ist offline   Mit Zitat antworten