DELPHI7对txt文件的读写问题

xyzivan 2015-08-24 03:33:44
代码如下
procedure TForm1.Button1Click(Sender: TObject);
var
f:textfile;
s,c:string;
begin
assignfile(f,'C:\123.txt');
reset(f);
while not eof(f) do
begin
readln(f,s); //是不是因为这里是只读方式打开的,所以无法写入?
c:=copy(s,1,5);
if c = 'abcde' then
begin
//table1.InsertRecord([copy(s,1,6),null,copy(s,7,6),null]);
delete(s,7,6);
end;
end;
closefile(f);
end;
end.
我本意是想当读到abcde时 就把本行内从第7个位置向后删除6位
是不是DELETE(S,7,6) 中s不对?应该要怎么改?

感觉是语法没有用对。
...全文
363 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyzivan 2015-08-28
  • 打赏
  • 举报
回复
谢谢楼上两位老哥的帮忙,搞好了。看起来我对DELPHI这东西不懂的还是太多
simonhehe 2015-08-27
  • 打赏
  • 举报
回复
修改文件的话用tstringlist吧
lyhoo163 2015-08-26
  • 打赏
  • 举报
回复
修改代码如下,已经通过测试:

procedure TForm1.Button1Click(Sender: TObject);
var
f:textfile;
FileName,s,c:string;
MyList:TStringlist;
begin
MyList:=TStringlist.Create;
FileName:='C:\123.txt';
assignfile(f,FileName);
reset(f);
while not eof(f) do
begin
readln(f,s);
c:=copy(s,1,5);
if c = 'abcde' then
begin
delete(s,7,6);
end;
MyList.Add(S);
end;
closefile(f);
MyList.SaveToFile(FileName);
MyList.Free;
end;
xyzivan 2015-08-25
  • 打赏
  • 举报
回复
我看了资料的,reset是说如果是txt文件 则是以只读方式打开,是不是说这个关联的文件 就没有办法保存? rewrite可以,但看说明是说会把以前的文件覆盖掉,但是以前的文件 我要保留下来的。至于append说是的以追加的方式并将指针指到文件尾去,但我用的循环是要从文件 头开始的。所以这样我就不明白怎么弄了 想是的说,从文件头读一行,如果有abcde的话就将相关的内容插入到数据库,这个实现了。然后将字符串删除,我用edit=s调出来看确实是删除了,这个应该是没有问题的。我在close()前加了个writeln(),但是报错啊
lanyun2 2015-08-25
  • 打赏
  • 举报
回复
找帮助文档,看看 reset,rewrite,append等函数都是什么意思 delete(s,7,6); 语句本身没错,但你删的是变量s本身的内容,没有写到文件中 建议你找本教程看看文件操作。或者百度之

16,748

社区成员

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

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