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);         //读文件后,返回值是零,也就是没读起文件,请问这是怎么回事啊?
   ..................
在线等待,很急!

解决方案 »

  1.   

    fileseek后文件指针在文件尾,再fileseek回来
      

  2.   

    FileRead(iFileHandle, ConnectionStrBuf, iFileLength);
    改为:
    FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
      

  3.   


        ConnectionStrBuf:=StrAlloc(iFileLength);
        //我在这里加了一句fileseek(IFileHandle,0,0)
        FileRead(iFileHandle, ConnectionStrBuf, iFileLength);   //showmessage(inttostr(FileRead(iFileHandle, ConnectionStrBuf, iFileLength)));用这个得到的fileread的返回值仍然是0这是为什么?
      

  4.   

    to zwjchina(蒲石):
       PChar本身就是一个指向字符串的指针类型啊
      

  5.   

    我说过了
    加了
    FileSeek(iFileHandle,0,0);

    没有问题呀!
      

  6.   

    你改成我的代码后是正确的吧!!!FileRead的声明为:
    function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;var Buffer没说是PChar
    你再想想ConnectionStrBuf和ConnectionStrBuf^的区别在哪里!