我用下面的方法老是出错。请高手指点。
size:longint  s:string; F:TStrings;   F:=TStringList.Create;
  F.LoadFromFile('c:\test\1.txt');
  s:=f.Text;
  
  size := FileSize(f);  //提示类型不匹配 ; 
                          //   用size:=filesize(s) 也不行。                  
  s:=inttostr(size);
  showmessage(s);到底该怎么才能得到文件有几个字符呢?

解决方案 »

  1.   

    FileSize函数不接受TStringList为变量的参数,它接受文件变量的参数,所以类型不匹配!
      

  2.   

    var
      sr: TSearchRec;begin if FindFirst('c:\1.txt',faAnyFile,sr) = 0 then    showmessage(IntToStr(sr.Size));  FindClose(sr);end;
      

  3.   

    1.文件大小:[uses IdGlobal]
    function FileSizeByName(const AFilename: string): Int64;
    begin
      with TFileStream.Create(AFilename, fmOpenRead or fmShareDenyNone) do
      try
        Result := Size;
      finally 
        Free; 
      end;
    end;
    http://community.csdn.net/Expert/topic/2910/2910006.xml?temp=.9839594
      

  4.   

    你可以参考FileSize函数的帮助,里面的例子好像可以解决你的问题吧!
      

  5.   

    你只是想得到文件的字节数可以用流来实现啊,我给你下面的一段代码,你自己试试对你有无用。你只需要拖一个button到窗口。
    procedure TForm1.Button1Click(Sender: TObject);
    var
       stm:Tmemorystream;
    begin
      stm:=Tmemorystream.Create ;
      stm.LoadFromFile('C:/mmm.txt');
      showmessage(inttostr(stm.Size));
    end;  
    你看看是否可以。
      

  6.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
       f: file of Byte;
       size: Longint;
    begin
        AssignFile(f, 'E:\项目\程序退出.txt');
    Reset(f);       size := FileSize(f);
         showmessage(inttostr(size));
    end;
    你用这些代码试一下
    我测试过