循环逐行读文本文件怎么实现了《急》?

iceriver521 2003-07-08 06:39:05
var
F: TextFile;
S: string;
a:integer;
begin
if OpenDialogFile.Execute then { Display Open dialog box }
begin
AssignFile(F, OpenDialogFile.FileName); { File selected in dialog }
Reset(F);
while not F.Eof do
begin
Readln(F, S);
Memo1.Lines.Add(S);
end;
CloseFile(F);
end;
end;
...全文
32 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
GWFXP 2003-07-18
  • 打赏
  • 举报
回复
iceriver521 (王子) :
拿了你的分,我却没提到解决方法,这样是不行的.
使用ReadFile来读文件,SetFilePointer来移动读取点,CreateFile来打开文件, 不过我想用TFileStream应该是可以的,不过我没试过.
使用API来读取大文件,才是上上之策.
GWFXP 2003-07-08
  • 打赏
  • 举报
回复
to gardenyang(太阳雨) :
strlist.loadfromfile('a.txt');在2000下打开100M的文本文件没问题,而且速度很快!

真的有那么快的速度嘛? 你的机器不会是 100GHz的吧。^_^
DelphiBird 2003-07-08
  • 打赏
  • 举报
回复
判断eof(f)
用tstringlist也可以
unicode的用twidestringlist
things 2003-07-08
  • 打赏
  • 举报
回复
if OpenDialogFile.Execute then
Memo1.Lines.LoadFromFile(OpenDialogFile.FileName);

这多简单!
softman_2000 2003-07-08
  • 打赏
  • 举报
回复
好像应该是
Memo1.Lines.LoadFromFile
hkbarton 2003-07-08
  • 打赏
  • 举报
回复
eof就是判断文件结束啊,错误信息是什么哦?
anux 2003-07-08
  • 打赏
  • 举报
回复
楼主的方法本来就很好啊?

用流也行。
gardenyang 2003-07-08
  • 打赏
  • 举报
回复
memo1.loadfromfile就可以了
gardenyang 2003-07-08
  • 打赏
  • 举报
回复
strlist:TStringList;
strlist.loadfromfile('a.txt');
while i<strlist.count do
begin
Strlist[i].........
i:=i+1;
//或者用这个
//strlist[0].....
// strlist.delete(0);
//
end;
我测试过在2000下打开100M的文本文件没问题,而且速度很快!

上海老李 2003-07-08
  • 打赏
  • 举报
回复
用长度来判断!
iceriver521 2003-07-08
  • 打赏
  • 举报
回复
怎么判断是否是文件的末尾来着·!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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