VC FILE总结
(2011-06-30 07:09:12)
标签:
杂谈 |
分类: Cplusplus |
FILE *fopen( const char *filename, const char *mode );
打开一个文件
返回值: 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
size_t fwrite(const void*buffer,size_t size,size_t
count,FILE*stream); 返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针。
向文件读入写入一个数据块
原型:int fflush(FILE *stream)
函数名: fflush
功 能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件
int fseek(FILE *stream, long offset, int fromwhere);
重定位流(数据流/文件)上的文件内部位置指针
注意:不是定位文件指针,文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。
编辑本段用法
函数设置文件指针stream的位置。
如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0,当前位置1,文件尾2)为基准,偏移offset(指针偏移量)个字节的位置。
如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
void *memset(void *s, int ch, unsigned n);
用指定字符来设定一个Buffer
第一参数:那一块Buffer
第二参数:字符
第三参数:字符数目
将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。
ssize_t read(int fd,void * buf ,size_t count);
read()会把参数fd
所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。
long ftell(FILE *stream);
功能 :函数 ftell()
用于得到文件位置指针当前位置相对于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。调用函数ftell()就能非常容易地确定文件的当前位置
ftell(fp);利用函数 ftell() 也能方便地知道一个文件的长。如以下语句序列: fseek(fp,
0L,SEEK_END); len =ftell(fp);
首先将文件的当前位置移到文件的末尾,然后调用函数ftell()获得当前位置相对于文件首的位移,该位移值等于文件所含字节数。
函数名: rewind
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
void CFileView::OnFileWrite()
{
}
void CFileView::OnFileRead()
{
//
//
//
//
}
//////////////////
#include <fstream.h>
void CFileView::OnFileWrite()
{
}
void CFileView::OnFileRead()
{
}
//////////////////
CreateFile函数创建或打开下列对象,并返回一个可以用来访问这些对象的句柄。
HANDLE CreateFile(
);
void CFileView::OnFileWrite()
{
}
void CFileView::OnFileRead()
{
}
/////////////////////////
CFile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接地通过派生类支持文本文件和内存文件。CFile与CArchive类共同使用,支持MFC对象的串行化。该类与其派生类的层次关系让程序通过多形CFile接口操作所有文件对象。例如,一个内存文件相当一个磁盘文件。使用CFile及其派生类进行一般目的的磁盘I/O,使用ofstream或其它Microsoft输入输出流类将格式化文本送到磁盘文件。通常,一个磁盘文件在CFile构造时自动打开并在析构时关闭。静态成员函数使你可以在不打开文件的情况下检查文件状态。
CFile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接地通过派生类支持文本文件和内存文件。CFile与CArchive类共同使用,支持MFC对象的串行化。
该类与其派生类的层次关系让程序通过多形CFile接口操作所有文件对象。例如,一个内存文件相当一个磁盘文件。
使用CFile及其派生类进行一般目的的磁盘I/O,使用ofstream或其它Microsoft输入输出流类将格式化文本送到磁盘文件。
通常,一个磁盘文件在CFile构造时自动打开并在析构时关闭。静态成员函数使你可以在不打开文件的情况下检查文件状态。
#include <afx.h>
void CFileView::OnFileWrite()
{
}
void CFileView::OnFileRead()
{
}
/////////////////
CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。 可以用构造函数提供的方式使用CFileDialog,也可以从CFileDialog派生出自己的对话类并编写一个构造函数来适应你的需要。每种情况下,对话框都与标准MFC对话框一样工作。因为它们都是CCommonDialog类的派生类。
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR
lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags =
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL ); 参数意义如下:
bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。 lpszDefExt
指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。
pParentWnd 为父窗口指针。
创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择: CString
CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:\ est\ est1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt CString
CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
GetPathName返回文件路径(盘符+路径+文件名)
?,然后用_splitpath()进行分割,可以直接分割为盘符\路径\文件名\扩展名,我们一般是通过GetPathName()返回的结果解析出路径来。
GetPathName返回文件路径(盘符+路径+文件名)
void CFileView::OnFileWrite()
{
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All
Files(*.*)\0*.*\0\0";
}
void CFileView::OnFileRead()
{
}
//////////
WriteProfileString 函数提供了一种机制来维护系统配置文件 WIN.INI。在以前的版本中的 Windows 版本
3.0,应用程序可能调用 WriteProfileString 函数可将项添加到 WIN.INI 或修改现有的条目。但是,要从
WIN.INI 中删除条目,用户需要手动编辑该文件。
WriteProfileString 函数已扩展在 Windows 3.0 中启用的应用程序从 WIN.INI 中删除下列任一操作:
1与密钥名称关联的值。
2包含特定的键名的行。
3向整个内容。