procedure TForm1.Button1Click(Sender: TObject);
var
fs:tfilestream;
buffer:pchar;
i:integer;
s:string;
begin
fs:=tfilestream.Create('c:\a.txt',fmOpenRead);//a.txt的内容是0123456789
showmessage(inttostr(fs.size)); //显示文件大小=10 getmem(buffer,fs.size);
fs.Position:=0;
fs.ReadBuffer((buffer)^,fs.Size);
for i:=0 to fs.Size-1 do
showmessage(buffer[i]); showmessage('bufferlen:='+inttostr(length(buffer))); //第一次点击button1的时候显示10
//第二、三。。次点击button1和时候显示11
//为什么????
s:=buffer;
showmessage('strlen:='+inttostr(length(s)));
showmessage(s); freemem(buffer);
fs.Free;
end;
var
fs:tfilestream;
buffer:pchar;
i:integer;
s:string;
begin
fs:=tfilestream.Create('c:\a.txt',fmOpenRead);//a.txt的内容是0123456789
showmessage(inttostr(fs.size)); //显示文件大小=10 getmem(buffer,fs.size);
fs.Position:=0;
fs.ReadBuffer((buffer)^,fs.Size);
for i:=0 to fs.Size-1 do
showmessage(buffer[i]); showmessage('bufferlen:='+inttostr(length(buffer))); //第一次点击button1的时候显示10
//第二、三。。次点击button1和时候显示11
//为什么????
s:=buffer;
showmessage('strlen:='+inttostr(length(s)));
showmessage(s); freemem(buffer);
fs.Free;
end;
//第二、三。。次点击button1和时候显示11
//为什么????
length(buffer))); //这个可能包含了null用strlen(buffer);//这个不包含null字符