try
{
   for(int row = 0; row < max_row; row++)
        {
    
         CFile file(szPath + filename, CFile::modeCreate|CFile::modeReadWrite);         //这里是往para.txt文件中写数据的循环体部分,略去         SetCurrentDirectory(szPath);//设置路径,使命令行程序顺利执行
WinExec("cmd.exe /k Dat2Rin.exe @para.txt",SW_SHOWNORMAL);
file.Close();
}
}
catch(CFileException *e)
{
    //Add debug infomation
    e->Delete();
}一共max_row行数据,我的目标是,第一行写入到para.txt执行一次WinExec函数,然后一次第二行、第三行……
觉得理论上这个方法可行,因为第二行写入para.txt的数据应该可以覆盖第一行写入的数据,但是执行却发现,只能得到最后一行的para.txt被执行。求指点!

解决方案 »

  1.   

    你的para.txt是个临时的文件,不需要保存数据吧, 那你这样还不如直接调用ShellExcute / CreateProcess 传递参数进去不就可以了
      

  2.   

    逻辑是有问题特别是你得循环里面你索性用
    File * cp
    cp = fopen("xxx.log","a+");
    fprintf(cp,"内容");
    fclose(cp);把内容循环填入
      

  3.   

    命令行程序以及众多参数使得我必须将数据保存到para.txt中,所以才没考虑ShellExcute / CreateProcess 
      

  4.   

    a+模式不行的,我需要的不是所有行追加到para.txt中,而是分行添加自动覆盖前一次的内容并执行!