谢谢dongdong 我的问题已经解决

解决方案 »

  1.   

    这么长?我把它运行了一下,发现 AppendProjectItem 连用几次就死循环了。检查一下代码,procedure AppendProjectItem(OperaFile,MapDir:string);
                          ... ...
                          repeat
                              opf.Read(size,IntLength);
                              bkf.Write(size,IntLength);
                              if size=-2 then break;
                              opf.Read(s,size);
                              bkf.Write(size,IntLength);
                          until size=-2;
                          ... ...原来是忽略了 opf.position = opf.size,即己到文件尾了。opf.position不能再向前了,size 的值也不会有变化了。只需把  until size=-2; 改成 until (size=-2) or opf.position=opf.size; 即可。其它的循环也有同样的问题。这只是错误的表象了,更深的BUG可能是文件内容方面的问题,因为没有仔细了解正确的文件结构,所以只能做个“外科代夫”。我想最好的解决之道是在你把 TStream 的帮助读过后用其它算法重写此程序。