2个stringList之间传值,为啥程序死了?

wfbbl 2015-06-12 08:57:36
想重新格式化一下txt文件,奇数行跟下一行合并,然后另存txt,结果程序死在那里了,什么原因?
代码:

function spaceNum(s: string): Integer;
var
i, space: Integer;
begin
space := 0;
for i := 0 to Length(s) do begin
if s[i] = ' ' then space := space + 1;
end;

Result := space;
end;


procedure TForm1.btn3Click(Sender: TObject);
var
str_old, str_new: TStringList;
txtPath, txtNewPath: string;
i, j: Integer;
begin
dlgOpen1.Filter := '文本文件(*.txt)|*.txt';
if dlgOpen1.Execute then txtPath := dlgOpen1.FileName;

str_old := TStringList.Create;
str_new := TStringList.Create;

str_old.LoadFromFile(txtPath);

i := 0;

txtNewPath := Copy(txtPath, 1, Length(txtPath) - 4);
txtNewPath := txtNewPath + '处理后' + '.txt';

while i < str_old.Count - 1 do begin
if spaceNum(str_old[i]) < 15 then
begin
try
str_new.Append(str_old[i] + ' ' + str_old[i + 1]);
//str_new.Add(str_old[i] + ' ' + str_old[i + 1]);
inc(i, 2);
except
on E: Exception do
begin
ShowMessage('txt复制失败!');
Exit;
end;
end;
end;
end;


txtNewPath := txtNewPath + '处理后' + '.txt';

str_new.SaveToFile(txtNewPath);

str_old.Free;
str_new.Free;
end;




...全文
263 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfbbl 2015-06-15
  • 打赏
  • 举报
回复
不是那个死循环的问题,我测试的文档是满足<15的。而且奇怪的是用delphi xe2就一切正常,但是在delphi 7下程序就死掉。。
CZP98168 2015-06-13
  • 打赏
  • 举报
回复
引用 5 楼 linuxpingwangping 的回复:
如果spaceNum(str_old[i]) > 15,你程序不就是个死循环?
一针见血
BambooCaep 2015-06-12
  • 打赏
  • 举报
回复
windows下string下标从1开始的。
holdingsword 2015-06-12
  • 打赏
  • 举报
回复
同意5楼
引用 5 楼 linuxpingwangping 的回复:
如果spaceNum(str_old[i]) > 15,你程序不就是个死循环?
  • 打赏
  • 举报
回复
如果spaceNum(str_old[i]) > 15,你程序不就是个死循环?
lyhoo163 2015-06-12
  • 打赏
  • 举报
回复
原代码经D7测试,通过,无死机现象。 楼主自己找原因吧。
tippchlj 2015-06-12
  • 打赏
  • 举报
回复
if spaceNum(str_old[i]) < 15 then //如果不符合这个条件的话 好像是个死循环。 另外在大循环里面加上这一句 Application.ProcessMessage
haitao 2015-06-12
  • 打赏
  • 举报
回复
for i := 1 to Length(s) do begin if s[i] = ' ' then space := space + 1; end; 原来写法有错,但不会死啊 最好在ide里运行,看看死循环(如果cpu持续占满)在哪一行

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧