关于fileStream.create参数的疑惑

liu9527 2005-08-18 01:17:18
若想用流对文件进行操作,常见的如下:
FileStream := TFileStream.Create(FileName, fmCreate or fmOpenReadWrite);
意图为文件存在则打开,不存在则创建,
今天发现,好象不是这样的,不管存在不存在都会创建.
再进一步看
const
fmCreate = $FFFF;
fmOpenRead = $0000;
fmOpenWrite = $0001;
fmOpenReadWrite = $0002;
那么 fmCreate or fmOpenReadWrite等于什么,我想是fmCreate吧,
测试如下:
if fmCreate =(fmCreate or fmOpenReadwrite) then
showmessage('s');
那这种写法是有别的含义还是我理解错了
...全文
202 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahjoe 2005-08-18
  • 打赏
  • 举报
回复
那几个符号是独立使用的,不能组合。

还是写两句吧
if FileExists(filename) then
FileStream := TFileStream.Create(FileName, fmOpenReadWrite)
else
FileStream := TFileStream.Create(FileName, fmCreate);
Bluce4587 2005-08-18
  • 打赏
  • 举报
回复
只用 fmOpenReadWrite 就行了,不必加 fmCreate

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧