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;
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;
strlist.loadfromfile('a.txt');
while i<strlist.count do
begin
Strlist[i].........
i:=i+1;
//或者用这个
//strlist[0].....
// strlist.delete(0);
//
end;
我测试过在2000下打开100M的文本文件没问题,而且速度很快!
Memo1.Lines.LoadFromFile
Memo1.Lines.LoadFromFile(OpenDialogFile.FileName);这多简单!
用tstringlist也可以
unicode的用twidestringlist
strlist.loadfromfile('a.txt');在2000下打开100M的文本文件没问题,而且速度很快!真的有那么快的速度嘛? 你的机器不会是 100GHz的吧。^_^
拿了你的分,我却没提到解决方法,这样是不行的.
使用ReadFile来读文件,SetFilePointer来移动读取点,CreateFile来打开文件, 不过我想用TFileStream应该是可以的,不过我没试过.
使用API来读取大文件,才是上上之策.