5,388
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.Button1Click(Sender: TObject);
var
T: Cardinal;
S: string;
I, J, M, N, Count: Integer;
Stream: TFileStream;
const
SSize: Integer = $100000; //1MB
begin
T := GetTickCount;
Count := 0;
SetString(S, nil, SSize);
Stream := TFileStream.Create('D:\恋爱假期CD1.rmvb', fmOpenRead);
try
M := Stream.Size div SSize;
for I := 0 to M do
begin
N := Stream.Read(Pointer(S)^, SSize);
for J := 1 to N do
if S[J] = #10 then Inc(Count);
end;
finally
Stream.Free;
end;
ShowMessage(IntToStr(GetTickCount - T)+' '+IntToStr(Count));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
T: Cardinal;
S: string;
I, J, M, N, Count: Integer;
Stream: TFileStream;
const
SSize: Integer = $100000; //1MB
begin
T := GetTickCount;
Count := 0;
SetString(S, nil, SSize);
Stream := TFileStream.Create('D:\恋爱假期CD1.rmvb', fmOpenRead);
try
M := Stream.Size div SSize;
N := SSize;
for I := 0 to M do
begin
Stream.Position := SSize * I;
Stream.Read(Pointer(S)^, SSize);
if I = M then N := Stream.Size mod SSize;
for J := 1 to N do
if S[J] = '+' then Inc(Count);
end;
finally
Stream.Free;
end;
ShowMessage(IntToStr(GetTickCount - T)+' '+IntToStr(Count));
end;