VCL类学习之(十) TFileStream

  1. { TFileStream class }
  2.   TFileStream = class(THandleStream)
  3.   public
  4.     constructor Create(const FileName: string; Mode: Word); overload;
  5.     constructor Create(const FileName: string; Mode: Word; Rights: Cardinal); overload;
  6.     destructor Destroy; override;
  7.   end;
  8. { TFileStream }
  9. constructor TFileStream.Create(const FileName: string; Mode: Word);
  10. begin
  11. {$IFDEF MSWINDOWS}
  12.   Create(Filename, Mode, 0);
  13. {$ELSE}
  14.   Create(Filename, Mode, FileAccessRights);
  15. {$ENDIF}
  16. end;
  17. constructor TFileStream.Create(const FileName: string; Mode: Word; Rights: Cardinal);
  18. begin
  19.   if Mode = fmCreate then
  20.   begin
  21.     inherited Create(FileCreate(FileName, Rights));
  22.     if FHandle < 0 then
  23.       raise EFCreateError.CreateResFmt(@SFCreateErrorEx, [ExpandFileName(FileName), SysErrorMessage(GetLastError)]);
  24.   end
  25.   else
  26.   begin
  27.     inherited Create(FileOpen(FileName, Mode));
  28.     if FHandle < 0 then
  29.       raise EFOpenError.CreateResFmt(@SFOpenErrorEx, [ExpandFileName(FileName), SysErrorMessage(GetLastError)]);
  30.   end;
  31. end;
  32. destructor TFileStream.Destroy;
  33. begin
  34.   if FHandle >= 0 then FileClose(FHandle);
  35.   inherited Destroy;
  36. end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值