您的位置:首页 > 编程语言 > C语言/C++

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

2014-09-02 11:37 411 查看
这类函数完成对文件的读写相关的操作,这种类型的操作和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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: