簡體   English   中英

Qt,如何反復從文件中讀取數據?

[英]Qt, how do I repetedly read data from file?

我有一個文件,我想一次又一次地閱讀,以更新代碼中的參數。 但是使用QTextStream僅讀取一次該值,然后每次讀取0。

這基本上是我的代碼:

int main(){
    QString data;
    QFile Status;

    Status.setFileName("/home/user/status");
    Status.open(QIODevice::ReadOnly);

    QTextStream in(&Status);

    While(1){
        usleep(100);
        data = in.readLine();
        cout << "This is the status: " << data.toInt();
    }
return 0;
}

問題是它一開始就正確地讀取了“狀態”文件,但是此后,它讀出了“ 0” ...關於如何反復讀取該文件的任何想法。

在其他信息中,我的想法是更改文件的數據以更新我的應用程序狀態,該狀態為0到100之間的數字(int)。

謝謝您的幫助,不勝感激.. :)

關閉文件,然后再次打開它或重置讀取指針。

由於您將同時編輯它,因此很有可能需要在兩次讀取之間將其關閉。

關閉文件並因此釋放I / O源怎么樣?

您的代碼沒有意義。 如果您已成功打開文件,則沒有人可以打開該文件進行寫入。

您可以修改循環:

While(1){
    usleep(100);
    if(status.open(QIODevice::ReadOnly) ){
        QbyteArray data = status.readline();//edited
        status.close();
        //read the first line (without newline)
        QString valueString = QString(data).section(0, '\n');
        cout << "This is the status: " << data.toInt();
    }
}

如果文件被另一個程序打開,則if是天真的嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM