FileSize不明白怎么回事。(20分)

  • 主题发起人 主题发起人 hlfysj
  • 开始时间 开始时间
H

hlfysj

Unregistered / Unconfirmed
GUEST, unregistred user!
在下在看FileSize的帮助时,看到最后一句:
Note:FileSize can't be used on a text file
看了半天没想明白,这句是什么意思呀?,我写了几个我认为的可能性,都没问题呀。
procedure TForm1.BitBtn2Click(Sender: TObject);
var
f: TextFile
或者 f: file of byte
或者 f: file;
s: String;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
Reset(f);
showmessage(inttostr(FileSize(f)));
end;
end;
我打开文本文件都能正确显示记录数呀,那上面那句英文是什么意思呢?
 
偶帮你试试.==
 
FileSize 的差数是 file
 
我在我的机子上运行没错误啊.
 
我试了也没错
 
没有错呀
 
是呀,确实没问题,可是按照delphi来说的:FileSize can't be used on a text file
我打开一个文本文件的时候应该报错才对呀,为什么现在不报错呢?
 
楼主是来找碴的是吧,程序没有错误吧,他还要试问一句,"为什么不出错.",我晕...世界真的变了.散分吧.
 
to benhacker:
那就请您来解释一下 FileSize can't be used on a text file 这句话是什么意思?我是想把FileSize的用法完全搞清晰了呀。
 
:(
现在你也搞清楚了,快点结了吧,本来这20分就不多,等下再多几个主,我怕不够分.
 
我晕,我没搞清楚,请benhacker看清楚一点我问的问题,难到是我的表达能力有问题吗?
再说,难道你上dfw来就为了挣分吗,这是一个互相学习的平台,如果单纯为了分而去解决问题,还有什么意义呢。
 
:(
惭愧之中...
但是,我要做大富翁....我要分.
 
FileSize这个函数不能用在Text文件??
 
楼主精神可嘉!
不会是BorLand的注释有问题吧
你查查高版本的注释
 
procedure TForm3.Button1Click(Sender: TObject);
var
F : TextFile;
I : Integer;
S : String;
C : Char;
begin
S := '1234567890';
AssignFile(F, 'Test.txt');
Rewrite(F);
Writeln(F, S);
Flush(F);
CloseFile(F);
//

AssignFile(F, 'Test.txt');
Reset(F);
I := 0;
while not Eof(F) do
begin
Read(F, C);
Inc(I);
end;

S := Format('%d %d', [I, FileSize(F)]);
ShowMessage(S);

CloseFile(F);

DeleteFile('Test.txt');
end;
 
本来FileSize就不支持text文件,Delphi的帮助没错.
 
你还是用 GetFileSize 这个API吧
 
你的 Delphi 版本是什么?我查看 Delphi7 中的帮助没有你说的 Notes。

FileSize function
--------------------------------------------------------------------
Returns the number of records in a file.

Unit

System

Category

IO routines

Delphi syntax:

function FileSize(var F): Integer;

Description

In Delphi code, call FileSize to determine the size of the file specified by the file variable F. The size is expressed as the number of records in a record file. Thus:

If the file is declared as a file of byte, then the record size defaults to one byte, and FileSize returns the number of bytes in the file.
The Reset procedure can set the record size (in bytes) when it opens the file. In this case, FileSize returns the number of records in the file.

Note: If the file is declared as an untyped file and you don't specify a record size when you call Reset, then FileSize assumes a record size of 128. That is, FileSize gives the number of bytes divided by 128.

To use FileSize, the file must be open. If the file is empty, FileSize(F) returns 0.
 
奥,我的是delphi6的版本,难道是delphi的帮助有问题?真奇怪。
 
后退
顶部