标题几乎说了一切,但我最好更具体一点,以免混淆任何人(包括我自己)。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