2013-04-27 4 views
8

Ich habe den folgenden Code. Ich verwende Qt_5_0_2_MSVC2012_64bit-Release. Ich kann die Datei nicht lesen. Ich bekomme die Debug-Fehlermeldung von "Kann Datei nicht zum Lesen öffnen". Es gibt ein Problem für mich mit Ressourcendateien. Irgendeine Idee, wie ich es beheben kann? Vielen Dank!Lesen von und Schreiben in Datei im Qt-System (Qt 5.0.2)

#include <QCoreApplication> 
#include <QFile> 
#include <QString> 
#include <QDebug> 
#include <QTextStream> 
#include <QResource> 
#include <QIODevice> 


void Read(QString Filename){ 
    QFile mFile(Filename); 

    if(!mFile.open(QFile::ReadOnly | QFile::Text)){ 
     qDebug() << "could not open file for read"; 
     return; 
    } 

     QTextStream in(&mFile); 
     QString mText = in.readAll(); 

     qDebug() << mText; 

     mFile.close(); 



} 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    Read(":/MyFiles/myfile.txt"); 
    return a.exec(); 
} 
+2

1) In mFile.errorString(), um Ihre Debug-Ausgabe mehr über den genauen Grund 2) Geben Sie den Inhalt der QRC-Datei zu lernen –

+0

Beachten Sie, dass Qt-Ressourcen nach dem Kompilieren gelesen, aber nicht geschrieben werden können. –

Antwort

2

test.pro:

TEMPLATE = app 
TARGET = test 
INCLUDEPATH += . 

# Input 
SOURCES += main.cpp 
RESOURCES += test.qrc 

test.qrc:

<!DOCTYPE RCC><RCC version="1.0"> 
<qresource> 
    <file>MyFiles/myfile.txt</file> 
</qresource> 
</RCC> 

main.cpp aus Ihrer Frage ist. Funktioniert gut.

Das heißt, wenn Sie immer noch das Problem haben, sollten Sie minimale Qt-Projekt (einschließlich. Pro und. Qrc-Dateien), die den Fehler hat.

3

Ich hatte das gleiche Problem. Die Fehlerzeichenfolge war "Unbekannter Fehler".
Lösung war INCLUDEPATH += . von @ gatto Antwort hinzufügen und Befehle aus dem Menü aus:

1. Build -> Clean all 
2. Build -> Run qmake 
3. Build -> Rebuild All