注册 登录
编程论坛 Delphi论坛

用流方式怎么多取文件,取得文件长度等

meisbrother 发布于 2009-08-30 17:27, 1054 次点击
var
Buf :Array[0..1023] of byte;
  filename_full: string;  //文件路径
  fs: TFileStream;      //文件流
begin
    openfile_d.Execute ;
    if(openfile_d.FileName <> '') then
    begin
    E_filename.Text :=openfile_d.FileName ;
    filename_full:=openfile_d.FileName ;   //同时赋值给全局字符变量 携带打开的文件名
    fs:=TFileStream.Create(filename_full,fmOpenRead ,fmShareDenyNone) //以只读方式打开
   // E_back_yes_sim.Text := StrToInt64Def(fs.Size);
    //fs.ReadBuffer(Buf,SizeOf(Buf));
    end
end;
问什么后两句出错啊,请明白的指点一下。
4 回复
#2
yeye552009-08-31 09:15
E_back_yes_sim.Text := IntToStr(fs.Size);
#3
meisbrother2009-08-31 13:33
怪了。我第一遍也是这么写的出错。
#4
dyfdb2009-09-03 10:14
请看好函数的声明
function StrToInt64(const S: string): Int64; overload;
function StrToInt64Def(const S: string; const Default: Int64): Int64; overload;
如果是StrToInt64,    只需要一个参数
如果是StrToInt64Def, 需要两个参数,后一个参数是转换失败时候的缺省值
实例:
E_back_yes_sim.Text := StrToInt64(fs.size);
E_back_yes_sim.Text := StrToInt64Def(fs.size,0);

[ 本帖最后由 dyfdb 于 2009-9-3 10:16 编辑 ]
#5
cyx1017822009-09-16 12:05
以下是引用dyfdb在2009-9-3 10:14的发言:

请看好函数的声明
function StrToInt64(const S: string): Int64; overload;
function StrToInt64Def(const S: string; const Default: Int64): Int64; overload;
如果是StrToInt64,    只需要一个参数
如果是StrToI ...

E_back_yes_sim.Text := StrToInt64(fs.size);
E_back_yes_sim.Text := StrToInt64Def(fs.size,0);
*******************************************
这两个是不是反了,StrToInt64是字符转为整型吧,我也刚学,问问
1