procedure TForm1.Button1Click(Sender: TObject);
var
   tfile:textfile;begin
open1.Execute;
assignfile(tfile,open1.FileName);
  reset(tfile);
label1.Caption:=inttostr(filesize(tfile));end;
在上面的语句运行中,如果打开一个几百字节的文件label1总显示0,为什么??? filesize()涵数是返回字节数还是kb??????
我觉得它返回的数和实际的不同
谢谢!

解决方案 »

  1.   

    var
      f: TFileStream;
    begin
      if opendialog.execute then
      begin
        f := TFileStream.Create(OpenDialog.FileName,fmOpenRead);
        try
          label1.Caption := IntToStr(f.Size);
        finally
          f.Free;
        end;
      end;
    end;
      

  2.   

    改为如下,用filesize测定文件大小时,最好不要用文本文件,而用二进制类的文件procedure TForm1.Button1Click(Sender: TObject);
    var
       tfile:file of byte;
    begin
    if open1.Execute then
    begin
    assignfile(tfile,open1.FileName);
    reset(tfile);
    label1.Caption:=inttostr(filesize(tfile));
    closefile(tfile);
    end;
    end;