T
tuboo
Unregistered / Unconfirmed
GUEST, unregistred user!
为什么以下两种执行结果不一样呢?
一
var
Fstream: Tmemorystream;
ps: integer;
mychar: char;
mystr: String;
begin
try
Fstream := Tmemorystream.create;
Fstream.LoadFromfile(filename);
mystr := '';
for ps := 0 to 4 do
beign
Fstream.seek(ps,sofrombeginning);
Fstream.Read(mychar,1);
Mystr := Mystr + mychar;
end;
finally
Fstream.free;
end;
showmessage(mystr);
end;
二
var
Fstream: Tmemorystream;
mystr: String[5];
begin
try
Fstream := Tmemorystream.create;
Fstream.loadfromfile(filename);
Fstream.seek(0,sofrombeginning);
Fstream.Read(mystr,5);
finally
Fstream.free;
end;
showmessage(mystr);
end;
我猜想二是错误的,那么怎么简化一的操作呢?
另外,Fstream(TmemoryStream对象)载入一个超大的文件会出现什么情况?这个文件大过
在任务管理器里面显示的最大内存量,例如我的任务管理器里面显示的最大内存
为300000K,而文件A的大小为400000K,当我调用 Fstream.loadfromfile(A)的时候
会出现什么情况?
那么怎么避免,一下子载入一个超大文件,而又能判断该文件的第N个字节开始
的一段是否为一个特定的字符串呢? 例如我要判断文件A的第200个字节开始的四个字节
是否为'good',我又不想一下子把整个文件A都载入到Fstream中【因为A有
400000k大】,那么我该怎么做?
各位大侠,多谢了!!!!!!!!!!!