var
iFileHandle: Integer;
iFileLength: Integer;
ConnectionStrBuf:PChar;
begin
if FileExists('Config.dat') then
begin
iFileHandle:= FileOpen('Config.dat',fmOpenRead);
iFileLength:=FileSeek(iFileHandle,0,2);
if iFileLength<>0 then
begin //在此之前是成功打开了文件的,并且文件不为空 try
ConnectionStrBuf:=StrAlloc(iFileLength);
FileRead(iFileHandle, ConnectionStrBuf, iFileLength); //读文件后,返回值是零,也就是没读起文件,请问这是怎么回事啊?
..................
在线等待,很急!
iFileHandle: Integer;
iFileLength: Integer;
ConnectionStrBuf:PChar;
begin
if FileExists('Config.dat') then
begin
iFileHandle:= FileOpen('Config.dat',fmOpenRead);
iFileLength:=FileSeek(iFileHandle,0,2);
if iFileLength<>0 then
begin //在此之前是成功打开了文件的,并且文件不为空 try
ConnectionStrBuf:=StrAlloc(iFileLength);
FileRead(iFileHandle, ConnectionStrBuf, iFileLength); //读文件后,返回值是零,也就是没读起文件,请问这是怎么回事啊?
..................
在线等待,很急!
改为:
FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
ConnectionStrBuf:=StrAlloc(iFileLength);
//我在这里加了一句fileseek(IFileHandle,0,0)
FileRead(iFileHandle, ConnectionStrBuf, iFileLength); //showmessage(inttostr(FileRead(iFileHandle, ConnectionStrBuf, iFileLength)));用这个得到的fileread的返回值仍然是0这是为什么?
PChar本身就是一个指向字符串的指针类型啊
加了
FileSeek(iFileHandle,0,0);
后
没有问题呀!
function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;var Buffer没说是PChar
你再想想ConnectionStrBuf和ConnectionStrBuf^的区别在哪里!