Qt4 在循环中运行qprocess时出现qlist错误

Qt4 在循环中运行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:运行此代码需

我正在附件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.txt


您在这里使用了错误的索引

//...
QStringList lineWithoutSlashAnne_01 = QString(line).split("\n");  
lineWithoutSlashAnne_02 = lineWithoutSlashAnne_01[i];
//...
我不知道您想要什么,但index
I
与行
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;
 }