C++ Builder 的文件读写操作总结

       这类函数完成对文件的读写相关的操作,这种类型的操作和C的基于I/O文件操作类似,下表列出这类操作常用的函数及其功能。

  FileOpen() 打开文件

  FileClose() 关闭文件

  FileRead() 读文件

  FileSeek() 文件定位  

  FileWrite() 写文件

  FileCreate() 创建文件

     下面就对这些函数作详细介绍。

1. FileOpen() 

【原型】:extern PACKAGE int __fastcall FileOpen(const AnsiString FileName, int Mode);

【功能】:打开文件,如果成功返回其句柄,否则返回-1

【参数】:

                 FileName: 要打开的文件名;

                 Mode:     打开的方式,取值如下表,可用"或"("|")运算符连接。

fmOpenRead0
以只读属性打开
fmOpenWrite1
以只写属性打开
fmOpenReadWrite2
以读/写属性打开
fmShareCompat0
兼容FCB方式(汇编中有相应的DOS功能调用,自已查资料)
fmShareExclusive16共享方式:以独占方式打开,在关闭以前,别人不能访问
fmShareDenyWrite32
共享方式:拒绝写访问
fmShareDenyRead48
共享方式:拒绝读访问
fmShareDenyNone64
共享方式:无限制,允许读写

  例子:

int iHandle = FileOpen("C:\\WINDOWS\\Win.ini", fmOpenReadWrite|fmShareExclusive);

      通过【打开对话框】获取打开的文件名:

     1.添加OpenDialog控件,头文件中自动添加:

TOpenDialog *OpenDialog1;
      2. .cpp文件中

int iHandle;
  if(OpenDialog1->Execute())
  {
    iHandle = FileOpen(OpenDialog1->FileName, fmOpenReadWrite|fmShareExclusive);
  }


2. FileClose()

原型】:extern PACKAGE void __fastcall FileClose(int Handle);

【功能】:关闭打开的句柄。

【参数】:Handle: 要关闭的句柄

  例子:

FileClose(iHandle);
3. FileRead()

【原型】:extern PACKAGE int __fastcall FileRead(int Handle, void *Buffer, int Count);

【功能】:读文件,返回实际读取的字节数,句柄必须首先由FileOpen或FileCreate创建。

【参数】:Handle: 要读取的句柄;

                  Buffer:  存放读取的数据的缓冲区;

                  Count:   想读取的字节数

  例子:

char str[400];
FileRead(iHandle,str,400);

4. FileSeek()

【原型】:extern PACKAGE int __fastcall FileSeek(int Handle, int Offset, int Origin);

【功能】:移动文件读取指针,成功返回文件指针的位置,失败返回-1

【参数】:Handle:相关联的句柄;

                  Offset:移动的量;

                  Orgin:移动的基准,0=文件头,1=当前位置,2=文件尾。

  例子:

ShowMessage( FileSeek(iHandle, 0, 2) ); //取得文件的长度

5. FileWrite()

【原型】:extern PACKAGE int __fastcall FileWrite(int Handle, const void *Buffer, int Count);

【功能】:写文件,返回实际写入的字节数,句柄必须首先由FileOpen或FileCreate创建。

【参数】:Handle:要写入的句柄;

                  Buffer:存放写入数据的缓冲区;

                  Count:想写入的字节数

  例子:

char str[]="I Love You";
FileWrite(iHandle, str, strlen(str));

6. FileCreate()

【原型】:extern PACKAGE int __fastcall FileCreate(const AnsiString FileName);

【功能】:创建文件。成功返回其句柄,否则返回-1

【参数】:FileName:要创建的文件名

  例子:

if( !FileExists("KC.C") )

{

  int iHandle = FileCreate("KC.C");

}

以下是一个完整的例子:

【功能】:对话框程序,点击一个Button,弹出【打开文件】对话框,选择一个文本文件,将文本文件内容显示在文本框内。

【实现】:对话框中添加:Button,OpenDialog组件,添加文本框,双击Button,添加以下代码:

  int iFileHandle;
  int iFileLength;
  int iBytesRead;
  char *pszBuffer;
  if (OpenDialog1->Execute())
  {
    try
    {
      iFileHandle = FileOpen(OpenDialog1->FileName, fmOpenRead);
      iFileLength = FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      pszBuffer = new char[iFileLength+1];
      iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
      FileClose(iFileHandle);
      this->Memo1->Text=pszBuffer;
      delete [] pszBuffer;
    }
    catch(...)
    {
      Application->MessageBox("Can't perform one of the  file read operation", "Alert", IDOK);
    }
   }









  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值