O
ow
Unregistered / Unconfirmed
GUEST, unregistred user!
我用TFileStream打开了一个文件,然后从里面逐个读出字符串,读字符串的代码如下:
function MyReadln(Stream: TStream): String; // may raise an EReadError exception when end of file occurs
var
InWord: Boolean;
C: Char;
begin
InWord := False;
Result := '';
while Stream.Read(C, 1) > 0 do
begin
if C > ' ' then
begin
Result := Result + C;
if not InWord then InWord := True;
end
else if InWord then Break;
end;
end;
但是运行时发现读的速度非常慢,远远低于用如下语句实现的速度(大约慢10倍左右):
Assign(MyFile, FileName);
Reset(MyFile);
Readln(MyFile, AStr);
请问这是什么原因?
function MyReadln(Stream: TStream): String; // may raise an EReadError exception when end of file occurs
var
InWord: Boolean;
C: Char;
begin
InWord := False;
Result := '';
while Stream.Read(C, 1) > 0 do
begin
if C > ' ' then
begin
Result := Result + C;
if not InWord then InWord := True;
end
else if InWord then Break;
end;
end;
但是运行时发现读的速度非常慢,远远低于用如下语句实现的速度(大约慢10倍左右):
Assign(MyFile, FileName);
Reset(MyFile);
Readln(MyFile, AStr);
请问这是什么原因?