2013-04-27 33 views
8

Tôi có mã bên dưới. Tôi đang sử dụng Qt_5_0_2_MSVC2012_64bit-Release. Tôi không thể đọc được tập tin. Tôi nhận được thông báo lỗi gỡ lỗi "Không thể mở tệp để đọc" .Có một số vấn đề đối với tôi với các tệp tài nguyên. Bất kỳ ý tưởng làm thế nào tôi có thể sửa chữa nó? Cảm ơn!Đọc và ghi vào tệp trong Hệ thống tài nguyên Qt (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) Thêm mFile.errorString() để kết xuất debug của bạn để tìm hiểu thêm về lý do chính xác 2) Thêm các nội dung của tập tin QRC –

+0

Lưu ý rằng các tài nguyên Qt có thể được đọc nhưng không được viết khi biên dịch. –

Trả lời

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 là từ câu hỏi của bạn. Hoạt động tốt.

Điều đó nói rằng, nếu bạn vẫn gặp sự cố, bạn nên đăng dự án Qt tối thiểu (bao gồm tệp .pro và .qrc), có lỗi.

3

Tôi gặp vấn đề tương tự. Chuỗi lỗi là "Lỗi không xác định".
Giải pháp là để thêm INCLUDEPATH += . từ câu trả lời @ gatto và chạy lệnh từ menu:

1. Build -> Clean all 
2. Build -> Run qmake 
3. Build -> Rebuild All 
Các vấn đề liên quan