我有一個文本文件。我需要將它讀到一個QStringList。沒有線路分離器。我的意思是文本文件中的每一行都在一個新行中。那麼無論如何,我可以做到這一點?讀取一個文本文件到QStringList
4
A
回答
15
我假設每一行都應該是列表中的一個單獨的字符串。在一個循環中使用QTextStream::readLine(),並在每一步中將返回的值附加到QStringList。就像這樣:
QStringList stringList;
QFile textFile;
//... (open the file for reading, etc.)
QTextStream textStream(&textFile);
while (true)
{
QString line = textStream.readLine();
if (line.isNull())
break;
else
stringList.append(line);
}
2
如果文件不是太大,閱讀全部內容爲QString
,然後split()
它變成一個QStringList
。
我喜歡使用QRegExp版本,以處理來自不同平臺的換行:
QStringList sList = s.split(QRegExp("(\\r\\n)|(\\n\\r)|\\r|\\n"), QString::SkipEmptyParts);
2
QFile TextFile;
//Open file for reading
QStringList SL;
while(!TextFile.atEnd())
SL.append(TextFile.readLine());
0
下面的代碼讀取該文件
QFile File("/file_path");
if(!File.open(QIODevice::ReadOnly));
{
qDebug("Error");
}
QTextStream in(&File);
while(!in.atEnd())
{
qDebug()<<ReadAll;
ReadAll=in.readAll();
}
File.close();
現在文件被關閉,現在被新行即\ n在這裏\ r是回車
List= ReadAll.split(QRegExp("[\r\n]"),QString::SkipEmptyParts);
1
我喜歡我的代碼完全縮進/ paranthesized與明顯的變量名稱(它們可能需要更長的時間來鍵入,但更容易調試),所以會做以下事情(但更改「myTextFile」和「myStringList」更明智的名稱,如「employeeListTextFile」)
QFile myTextFile;
QStringList myStringList;
if (!myTextFile.open(QIODevice::ReadOnly))
{
QMessageBox::information(0, "Error opening file", myTextFile.errorString());
}
else
{
while(!myTextFile.atEnd())
{
myStringList.append(myTextFile.readLine());
}
myTextFile.close();
}
相關問題
- 1. 讀取一個xml文件並映射到文本框
- 2. 插入新行到一個文本文件中讀取
- 3. 從文本文件中讀取到一個數組
- 4. 讀取文本文件到一個結構數組
- 5. 從文本文件中讀取,創建另一個文件
- 6. 讀取文本文件到數組
- 7. 將文本文件讀取到jtable
- 8. 讀取文件到一個數組
- 9. 讀取一個csv文件到陣列
- 10. C:讀取文件到一個數組
- 11. 讀取一個SQL文件
- 12. 讀取一個XML文件
- 13. 讀取一個FPT文件
- 14. VBS不讀取整個文本文件
- 15. C++讀取整個文本文件
- 16. 蟒讀取文本文件
- 17. 腳本讀取與許多列的文件到一個文件中有一列
- 18. 我想讀取一個文本文件的內容到一個列表中php
- 19. 從文本文件的某一行讀取一個數字
- 20. 如何讀取多個文本文件並將其保存到一個文本文件中?
- 21. PHP文件讀取純文本文件
- 22. 閱讀一個文本文件android
- 23. 讀一個純文本文件
- 24. bash腳本讀取一個文本文件,然後輸出每行到變量
- 25. C#從讀取文本文件中讀取二進制文件
- 26. 如何從最後一行讀取文本文件到第一個
- 27. Groovy:使用groovy從文本文件讀取一行到一個數組
- 28. 讀取數據文件並輸出到另一個文件
- 29. 從一個文件讀取一個對象到一個ArrayList
- 30. 如何從一個文本文件讀取多個東西到C++