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: 打开的方式,取值如下表,可用"或"("|")运算符连接。
例子:
通过【打开对话框】获取打开的文件名:
1.添加OpenDialog控件,头文件中自动添加:
2. FileClose()
【原型】:extern PACKAGE void __fastcall FileClose(int Handle);
【功能】:关闭打开的句柄。
【参数】:Handle: 要关闭的句柄
例子:
【原型】:extern PACKAGE int __fastcall FileRead(int Handle, void *Buffer, int Count);
【功能】:读文件,返回实际读取的字节数,句柄必须首先由FileOpen或FileCreate创建。
【参数】:Handle: 要读取的句柄;
Buffer: 存放读取的数据的缓冲区;
Count: 想读取的字节数
例子:
4. FileSeek()
【原型】:extern PACKAGE int __fastcall FileSeek(int Handle, int Offset, int Origin);
【功能】:移动文件读取指针,成功返回文件指针的位置,失败返回-1
【参数】:Handle:相关联的句柄;
Offset:移动的量;
Orgin:移动的基准,0=文件头,1=当前位置,2=文件尾。
例子:
5. FileWrite()
【原型】:extern PACKAGE int __fastcall FileWrite(int Handle, const void *Buffer, int Count);
【功能】:写文件,返回实际写入的字节数,句柄必须首先由FileOpen或FileCreate创建。
【参数】:Handle:要写入的句柄;
Buffer:存放写入数据的缓冲区;
Count:想写入的字节数
例子:
6. FileCreate()
【原型】:extern PACKAGE int __fastcall FileCreate(const AnsiString FileName);
【功能】:创建文件。成功返回其句柄,否则返回-1
【参数】:FileName:要创建的文件名
例子:
以下是一个完整的例子:
【功能】:对话框程序,点击一个Button,弹出【打开文件】对话框,选择一个文本文件,将文本文件内容显示在文本框内。
【实现】:对话框中添加:Button,OpenDialog组件,添加文本框,双击Button,添加以下代码:
FileOpen() 打开文件
FileClose() 关闭文件
FileRead() 读文件
FileSeek() 文件定位
FileWrite() 写文件
FileCreate() 创建文件
下面就对这些函数作详细介绍。
1. FileOpen()
【原型】:extern PACKAGE int __fastcall FileOpen(const AnsiString FileName, int Mode);
【功能】:打开文件,如果成功返回其句柄,否则返回-1
【参数】:
FileName: 要打开的文件名;
Mode: 打开的方式,取值如下表,可用"或"("|")运算符连接。
fmOpenRead | 0 | 以只读属性打开 |
fmOpenWrite | 1 | 以只写属性打开 |
fmOpenReadWrite | 2 | 以读/写属性打开 |
fmShareCompat | 0 | 兼容FCB方式(汇编中有相应的DOS功能调用,自已查资料) |
fmShareExclusive | 16 | 共享方式:以独占方式打开,在关闭以前,别人不能访问 |
fmShareDenyWrite | 32 | 共享方式:拒绝写访问 |
fmShareDenyRead | 48 | 共享方式:拒绝读访问 |
fmShareDenyNone | 64 | 共享方式:无限制,允许读写 |
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); } }
相关文章推荐
- C++ builder 的文件读写操作总结
- C++ builder 的文件读写操作总结
- C++ builder 的文件读写操作总结
- C++ builder 的文件读写操作总结 (来源:论坛整理 作者:佚名)
- C++ builder 的文件读写操作总结
- C++ builder 的文件读写操作总结
- C_C++文件读写操作总结
- C/C++ 文件读写操作总结
- (转)C/C++ 文件读写操作总结
- [转]C/C++ 文件读写操作总结
- C/C++ 文件读写操作总结
- VC文件读写操作总结
- 文件读写操作总结
- C++ builder 的文件读写操作总结
- C++ 的各种文件读写操作总结 [转载]
- C/C++ 文件读写操作总结(1)
- C语言文件读写操作总结
- 自己总结的Java实现文件的读写操作
- 文件读写操作总结
- C/C++ 文件读写操作总结