Qt4 在循环中运行qprocess时出现qlist错误
我正在附件1.txt中执行以下操作 a) 读一份清单 b) 对于列表中的每个项目 c) 运行外部进程并将其保存在文件中 d) 读取一个文件,将修改保存在B文件中 e) 就这样 然后发生以下错误 在QList:operator[]中断言失败:“索引超出范围”,文件/opt/qtsdk-2009.02/qt/include/QtCore/QList.h,第403行 2.txt是文件1.txt(无循环)的一个实例,它运行成功 如何使循环成功运行以修改文件。 请举例说明。那会有帮助的 PS:运行此代码需要tmp文件夹中的文件queue_output.txt 1.txtQt4 在循环中运行qprocess时出现qlist错误,qt4,Qt4,我正在附件1.txt中执行以下操作 a) 读一份清单 b) 对于列表中的每个项目 c) 运行外部进程并将其保存在文件中 d) 读取一个文件,将修改保存在B文件中 e) 就这样 然后发生以下错误 在QList:operator[]中断言失败:“索引超出范围”,文件/opt/qtsdk-2009.02/qt/include/QtCore/QList.h,第403行 2.txt是文件1.txt(无循环)的一个实例,它运行成功 如何使循环成功运行以修改文件。 请举例说明。那会有帮助的 PS:运行此代码需
您在这里使用了错误的索引
//...
QStringList lineWithoutSlashAnne_01 = QString(line).split("\n");
lineWithoutSlashAnne_02 = lineWithoutSlashAnne_01[i];
//...
我不知道您想要什么,但indexI
与行QString(line)的拆分无关。拆分(“\n”)代码>
我想你想要这个lineWithoutSlashAnne\u 02=lineWithoutSlashAnne\u 01[0]代码>
只需将丑陋的while循环替换为:
foreach(QByteArray line, tFile->readAll().split("\n"))
{
if(line.endsWith(projects))
{
line << " " << projNm;
}
out << line << endl;
}
foreach(QByteArray行,tFile->readAll().split(“\n”))
{
if(第四行(项目))
{
您是否通过调试器运行它,并在超出索引时找到它,即代码中哪里出了问题?您是否知道您可以在C++中创建函数和类来构造代码。。。
all.q
eqws-069.q
grid.q
grid1.q
grid3.q
test.1.q
//...
QStringList lineWithoutSlashAnne_01 = QString(line).split("\n");
lineWithoutSlashAnne_02 = lineWithoutSlashAnne_01[i];
//...
foreach(QByteArray line, tFile->readAll().split("\n"))
{
if(line.endsWith(projects))
{
line << " " << projNm;
}
out << line << endl;
}