標題幾乎說了一切,但我最好更具體一點,以免混淆任何人(包括我自己)。QTextStream將csv文件中每行的第一個字符與已知變量進行比較?
在這裏待了兩天沒有太大的成功。 我有一個CSV文件,並用QTextStream
逐行打開/讀取它。線長僅設置爲每行的第一個字符,line.at(0)。它將每行的開始與已知變量/整數進行比較。 它的工作原理和標籤確實顯示「Match Found」,但之後立即崩潰。它永遠達不到「找不到匹配」。
錯誤我收到:
ASSERT: "uint(i) < uint(size())" in file ..\..\..\..\Qt\5.0.2\mingw47_32\include/QtCore/qstring.h, line 729
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
任何想法?任何人?
哦,是的,這是導致這種頭痛的功能的代碼。
void DialogToll::ReadAndCompare()
{
QString Number = ui->Tolls->text();
QFile filetoCompare("C:/Tolls.txt");
if(filetoCompare.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream stream(&filetoCompare);
QString line;
do
{
line = stream.readLine();
if(line.at(0)== Number)
{
ui->label->setText("match Found!!!");
}
}while(!line.isNull());
ui->label->setText("No match Found!");
}
}
會出現正好是一個'line.isEmpty()'方法? – xtofl
是的,'if(!line.isEmpty()&& line.at(0)== Number)'也可以。 – vahancho
感謝vahancho,作品非常漂亮,但是(!line.isEmpty()&& line.at(0)== Number)的優點是什麼?另外,感謝xtofl,感到很累,我沒有意識到在循環結束後我覆蓋了UI標籤。 – Hank