delphi txt 操作问题。

ycwyyy 2005-12-08 06:02:28
var
sL:TStrings;
i:integer;
begin
sL:=TStringList.Create ;
try
sL.LoadFromFile('D:\ABC.txt');
for i:=0to sl.Count-1 do
begin
if pos('文字',sL[i])>0 then
begin
sL.Delete(i+1);
sL.Delete(i);
然后savetofile...........
可我一删除就会报错,
请教我得怎么作?
我的意思就是想删除指定行,
和指定行的上一,二,三行,或下面的一二三行,谁能帮我?
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qizhanfeng 2005-12-09
  • 打赏
  • 举报
回复
//for...downto
var
sL:TStrings;
i:integer;
begin
sL:=TStringList.Create ;
try
sL.LoadFromFile('D:\ABC.txt');
for i:=sl.Count-1 downto 0 do
begin
if pos('文字',sL[i])>0 then
begin
sL.Delete(i);
hmzgz81 2005-12-08
  • 打赏
  • 举报
回复
up
ycwyyy 2005-12-08
  • 打赏
  • 举报
回复
谢谢
ycwyyy 2005-12-08
  • 打赏
  • 举报
回复
看错了,是passcal!!
ycwyyy 2005-12-08
  • 打赏
  • 举报
回复
你这是C语言写法吧?谢谢你,我试试去。
老之 2005-12-08
  • 打赏
  • 举报
回复
因为你每删一行,Count就会减1,i就有可能超出原来Count的值
试一下这样
i:=0;n:=sl.Count-1;
while i<n do
begin
if pos('文字',sL[i])>0 then
begin
sl.Delete(i);
n:=n-1;//每删一行n就减1
end else
i:=i+1;
end;

16,742

社区成员

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

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