储存应用程序的配置信息ini实现方式
1.C语言中文件操作。
2.C++语言中的文件操作。
3.Win32 API函数文件操作。
4.MFC CFile类文件操作。
5.MFC CFileDialog类的文件操作。
6.注册表文件操作。 下面我来详细说明一下各种文件操作方法:
1. C语言中文件操作.需要包含的头文件STDIO.H
写入文件:
FILE *pfile=fopen("C.txt","w");//以写的方式打开C.txt文件。
fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//将数据写入文件。
fflush(pfile);//刷新缓冲区。将缓冲区数据写入文件
fclose(pfile);//关闭文件
读取文件:
FILE *pfile=fopen("C.txt","r");//以读的方式打开C.txt文件。
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
fread(FileContent,1,100,pfile);//将刚才C.txt文件中的内容读入到FileContent
MessageBox(FileContent);//输出结果
fclose(pfile);//关闭文件
2.C++语言中的文件操作。需要包含的头文件fstream.h
写入文件:
ofstream ofs("C++.txt");//建立ofstream对像。
ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//将数据写入文件
ofs.close();//关闭ofstream对象。
读取文件:
ifstream ifs("C++.txt");
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
ifs.read(FileContent,100);//读取数据
ifs.close();//关闭ifstream对像
MessageBox(FileContent);//输出结果
3.Win32 API函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib
写入文件:
HANDLE hFile;//定义一个句柄。
hFile=CreateFile("API.txt",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);//使用CreatFile这个API函数打开文件
DWORD Written;
WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//写入文件
CloseHandle(hFile);//关闭句柄
读取文件:
HANDLE hFile;//定义一个句柄。
hFile=CreateFile("API.txt",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);//使用CreatFile这个API函数打开文件
DWORD dwDataLen;
char FileContent[100];
ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//读取数据
FileContent[dwDataLen]=0;//将数组未尾设零。
CloseHandle(hFile);//关闭句柄
MessageBox(FileContent);//输出结果
4.MFC CFile类文件操作。需要包含的头文件afx.h
写入文件:
CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//构造CFile对象
file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
file.Close();//关闭CFile对象。
读取文件:
CFile file("CFile.txt",CFile::modeRead);//构造CFile对象
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
file.Read(FileContent,100);//读入数据
file.Close();//关闭文件对象
MessageBox(FileContent);//输出数据
5.MFC CFileDialog类的文件操作。需要包含的头文件Afxdlgs.h
写入文件:
CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog对象
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//构造CFile对象
file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
file.Close();
};
读取文件:
CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog对象
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeRead);//构造CFile对象
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
file.Read(FileContent,100);//读入数据
file.Close();//关闭文件对象
MessageBox(FileContent);
};
6.注册表文件操作。
写入注册表:
HKEY hKey;
DWORD dwSex=1;
RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//写入注册表数据
RegCloseKey(hKey);//关闭注册表键
读注册表:
HKEY hKey;
RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
DWORD dwType;
DWORD dwValue;
DWORD dwSex;
RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查询注册表数据
RegCloseKey(hKey);//关闭注册表键
CString str;
str.Format("sex=%d",dwSex);
MessageBox(str);//以上代码在VC6.0,Windows 2K server下编译通过
写一个代码出现了问题,fread一个wav文件到一定长度时总是不成功,后来把fopen(m_str_sourcepath,"rt")变成fopen(m_str_sourcepath,"rb")就好了。
下面是一些文件操作的文章,感谢这些同志…^_^
转发:名字忘了,呵呵
取得文件名
{
CString FilePathName;
CFileDialog dlg(TRUE);///TRUE为OPEN对话框 ,FALSE为 保存 对话框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();
}
相关信息:CFileDialog 用于取文件名的几个成员函数:
假如选择的文件是C:\WINDOWS\TEST.EXE
则:
(1)GetPathName();取文件名全称,包括完整路径。取回C:\WINDOWS\TEST.EXE
(2)GetFileTitle();取回TEST
(3)GetFileName();取文件全名:TEST.EXE
(4)GetFileExt();取扩展名EXE
打开文件
CFile file("C:\HELLO.TXT",CFile::modeRead);///只读方式打开
///CFile::modeRead可改为 CFile::modeWrite(只写),CFile::modeReadWrite(读写),CFile::modeCreate(新建)
例子:
{
CFile file;
file.Open("C:\HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);
...
...
}
移动文件指针
file.Seek(100,CFile::begin);///从文件头开始往下移动100字节
file.Seek(-50,CFile::end);///从文件末尾往上移动50字节
file.Seek(-30,CFile::current);///从当前位置往上移动30字节
file.SeekToBegin();///移到文件头
file.SeekToEnd();///移到文件尾
对于CFileDialog 使用可参照下面
:通用对话框的使用
大家都遇到过CFileDialog文件对话框吧,它的参数让人头疼.下面解除大家的头疼.
先在使用文件对话框的类的类定义文件中加入对象定义CFileDialog m_MyOpenDialog(TRUE,"avi","*.avi")。随后,在需要使用该对话框的地方加入以下语句:
m_MyOpenDialog.Domodal();
就可以预览所有.avi文件.
其调用规则为:
函数原型:
CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL,DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPR OMPT,LPCTSTR lpszFilter=NULL,CWnd * pParentWnd
=NULL);
参数说明:
bOpenFileDialog:为TRUE或FALSE。TRUE为打开文件;FALSE为保存文件。
lpszDefExt :为缺省的扩展名。
lpszFileName :为显示在文件名组合框的编辑框的文件名,一般可选NULL
dwFlags :为对话框风格,一般为OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,即隐藏只读选项和覆盖已有文件前提示。
LpszFilter :为下拉列表枢中显示文件类型。
pParentWnd :一般可选NULL。
例如:在文件类型列表框的编辑框要显示“可执行文件(*.exe)”,而在它的下拉列表框中列出“视频文件(*.avi)、All Files(*.*)”内容,则变量定义如下:CFileDialog m_MyOpenDialog(TRUE,"exe",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"可执行文件(*.exe) | *.exe|视频文件(*.bat) | *.bat |All Files (*.*) | *.* ||",NULL);
注:看看没有*.*后的||会是什么效果.
关于:fseek
fseek()函数有三个参数
第一个是文件的指针
第二个是偏移量 也就是指针移动的字符数
//这个参数必须是L类型
//如果是负数 表示指针反向移动(向文件头的方向)
第三个是偏移量的相对开始位置
0 表示从文件开始处 偏移 L
1 表示从当前位置 偏移 L
2 表示从文件末尾 偏移 L //只能是负数了 也就是只能前向移动
储存应用程序的配置信息ini实现方式的更多相关文章
- 应用SharedPreference保存程序的配置信息
SharedPreference: 1.用来保存应用程序的配置信息的XML文件,内部的数据形式为键值对 2.一般存在于/data/data/<包名>shared_prefs目录下 3.该对 ...
- [Xcode 实际操作]九、实用进阶-(8)实现App的Setting设置:添加和读取程序的配置信息
目录:[Swift]Xcode实际操作 本文将演示如何实现添加和读取程序的配置信息. 在项目文件夹[DemoApp]上点击鼠标右键->[New File]创建一个设置束文件 ->[Sett ...
- AspNet Core 程序写入配置信息并再次读取配置信息
1.首先创见Core控制台应用程序 并且引入 AspNetCore.All 首先我们写入配置信息:直接代码如下 //配置信息的根对象 public static IConfigurationRoo ...
- 保存form配置信息INI
(* 功能:IniFormState1 保存和读取 窗体的大小2 保存和读取 窗体在屏幕上的位置//让程序第1次出现在屏幕的中心点获取屏幕的中心点POSITION:poScreenCenter //不 ...
- VC++ MFC中如何将应用程序的配置信息保存到注册表中(二)
在上一篇中介绍了几个写入注册表数据和读取注册表数据的接口,并介绍了使用方法. 这一片教你如何使得你的应用程序在下次打开时保持上一次关闭前的状态. 在上一篇添加的代码的基础上,要添加WM_CLOSE消息 ...
- kubernetes 的configMap和sercet配置信息
简介: 启动pod,pod启动时可以将configMap资源关联到当前pod上来,从中读一个数据c传递给pod内的容器的一个变量.任然是变量注入的方式来给容器传配置信息. 把每一个configMap当 ...
- spring读取数据库的配置信息(url、username、password)时的<bean>PropertyPlaceholderConfigurer的用法
用法1: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
- 配置信息写入到.ini文件中的方法
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中 1.所用的WINAP ...
- JDBC程序优化--提取配置信息放到属性文件中
JDBC程序优化--提取配置信息放到属性文件中 此处仅仅优化JDBC连接部分,代码如下: public class ConnectionFactory { private static String ...
随机推荐
- window下安装Node.js NPM
一.安装Node.js 下载地址:http://nodejs.org/download/ 1..msi文件,直接安装,包括了npm,结束. 2..exe文件,把node.exe所在主目录,加入到系统P ...
- sqlite-在数据库中创建默认时间
create table log( content ), logtime TIMESTAMP default (datetime('now', 'localtime')) )
- 线程的sleep()方法和yield()方法有什么区别?
1.sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会 2.yield()方法只会给相同优先级或更高优先级的线程以运行的机会 3.线程执行sleep()方法后 ...
- 数据泵导出oracle 10g数据库
首先连接sqlplus: sqlplus /nolog conn system/manager (或者连接其他用户) 1.创建whboa目录,用于存放导出的dmp文件(需要提前手动创建目录“E:\or ...
- 简单的异步Socket实现——SimpleSocket_V1.1
简单的异步Socket实现——SimpleSocket_V1.1 笔者在前段时间的博客中分享了一段简单的异步.net的Socket实现.由于是笔者自己测试使用的.写的很粗糙.很简陋.于是花了点时间自己 ...
- linux镜像空间
硬件采用nandflash,nandflash为8位数据宽度,没有dataflash和norflash. Nandflash空间分配为 bootstrap + u-boot + env + linux ...
- yii2 RESTful API 405 Method Not Allowed
关于 Yii2 中 RESTful API 的开发,可以参考另一篇随笔 http://www.cnblogs.com/ganiks/p/yii2-restful-api-dev.html 测试的过程中 ...
- php调用C代码的方法详解和zend_parse_parameters函数详解
php调用C代码的方法详解 在php程序中需要用到C代码,应该是下面两种情况: 1 已有C代码,在php程序中想直接用 2 由于php的性能问题,需要用C来实现部分功能 针对第一种情况,最合适的方 ...
- 爬虫 (5)- Scrapy 框架简介与入门
Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...
- tree 命令使用技巧
一.简介 tree命令可以以目录树的形式显示指定(默认显示这个文件系统)目录的所有文件夹和文件 二.使用 显示一个目录 $ tree folder Tips:如果文件夹有中文,则会显示一串转移字符,使 ...