孙鑫mfc学习笔记第十二课
第十二课
const char *与char * const的区别。C语言对文件读写的支持,FILE指针;文本文件和二进制文件的区别。用文本方式读写文件和以二进制方式读写文件的注意事项。C++对文件读写的支持,ofstream和ifstream的用法。Win32 SDK对文件读写的支持,CreateFile函数、WriteFile函数、ReadFile函数的使用;MFC对文件读写的支持,CFile类和 CFileDialog的使用,文件过滤器的设置。win.ini文件和注册表的读写方式及相关知识点。
- Ini 文件操作
- ::WriteProfileString("http://www.sunxin.org","admin","zhangsan");写入ini,注册表
- CString str;
- ::GetProfileString("http://www.sunxin.org","admin","lisi",str.GetBuffer(100),100);读取ini,
- 注册表
- 注册表的操作
- 写入
- WriteProfileString("my ini test","jiajia","i love hf very much");
- GetProfileString("my ini test","jiajia","lisi");
- void CFileView::OnRegWrite()
- {
- // TODO: Add your command handler code here
- HKEY hKey;
- DWORD dwAge=30;
- RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",&hKey);
- RegSetValue(hKey,NULL,REG_SZ,"zhangsan",strlen("zhangsan")); 设置缺省项值
- RegSetValueEx(hKey,"age",0,REG_DWORD,(CONST BYTE*)&dwAge,4);设置注册表项值
- RegCloseKey(hKey);关闭注册表
- }
- void CFileView::OnRegRead()
- {
- // TODO: Add your command handler code here
- /* LONG lValue;
- RegQueryValue(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",
- NULL,&lValue);读取注册表项缺省值
- char *pBuf=new char[lValue];
- RegQueryValue(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",
- pBuf,&lValue);
- MessageBox(pBuf);*/
- HKEY hKey;
- RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",&hKey);
- 打开注册表
- DWORD dwType;
- DWORD dwValue;
- DWORD dwAge;
- RegQueryValueEx(hKey,"age",0,&dwType,(LPBYTE)&dwAge,&dwValue);
- CString str;
- str.Format("age=%d",dwAge);
- MessageBox(str);
- }
- 写入文件
- C语言的方法
- /* FILE *pFile=fopen("1.txt","w");
- fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
- //fseek(pFile,0,SEEK_SET);
- //fwrite("ftp:",1,strlen("ftp:"),pFile);
- //fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
- fclose(pFile);*/
- //fflush(pFile);
- /* FILE *pFile=fopen("2.txt","wb");
- char ch[3];
- ch[0]='a';
- ch[1]=10;
- ch[2]='b';
- fwrite(ch,1,3,pFile);
- fclose(pFile);*/
- /*FILE *pFile=fopen("3.txt","w");
- int i=98341;
- char ch[5];*/
- /*ch[0]=9+48;
- ch[1]=8+48;
- ch[2]=3+48;
- ch[3]=4+48;
- ch[4]=1+48;*/
- /*itoa(i,ch,10);
- //fwrite(&i,4,1,pFile);
- fwrite(ch,1,5,pFile);
- fclose(pFile);*/
- C++的方法
- /* ofstream ofs("4.txt");
- ofs.write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
- ofs.close();*/
- 读取文件
- C语言的方法
- /* FILE *pFile=fopen("1.txt","r");
- // char ch[100];
- // memset(ch,0,100);
- // fread(ch,1,100,pFile);
- // MessageBox(ch);
- char *pBuf;
- fseek(pFile,0,SEEK_END);
- int len=ftell(pFile);
- pBuf=new char[len+1];
- rewind(pFile);
- fread(pBuf,1,len,pFile);
- pBuf[len]=0;
- MessageBox(pBuf);
- fclose(pFile);*/
- /* FILE *pFile=fopen("2.txt","rb");
- char ch[100];
- fread(ch,1,3,pFile);
- ch[3]=0;
- MessageBox(ch);
- fclose(pFile);*/
- C++的方法
- /* ifstream ifs("4.txt");
- char ch[100];
- memset(ch,0,100);
- ifs.read(ch,100);
- ifs.close();
- MessageBox(ch);*/
- Windows api 操作
- /* HANDLE hFile;
- hFile=CreateFile("5.txt",GENERIC_READ,0,NULL,OPEN_EXISTING, //创建,打开文件
- FILE_ATTRIBUTE_NORMAL,NULL);
- char ch[100];
- DWORD dwReads;
- ReadFile(hFile,ch,100,&dwReads,NULL); //读取文件
- ch[dwReads]=0;
- CloseHandle(hFile);
- MessageBox(ch);*/
- /* CFile file("6.txt",CFile::modeRead);
- char *pBuf;
- DWORD dwFileLen;
- dwFileLen=file.GetLength();
- pBuf=new char[dwFileLen+1];
- pBuf[dwFileLen]=0;
- file.Read(pBuf,dwFileLen);
- file.Close();
- MessageBox(pBuf);*/
- /* HANDLE hFile;
- hFile=CreateFile("5.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,
- FILE_ATTRIBUTE_NORMAL,NULL);
- DWORD dwWrites;
- WriteFile(hFile,"http://www.sunxin.org",strlen("http://www.sunxin.org"),//写入文件
- &dwWrites,NULL);
- CloseHandle(hFile);*/
- /* CFile file("6.txt",CFile::modeCreate | CFile::modeWrite);
- file.Write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
- file.Close();*/
- 通用控件的文件操作
- CFileDialog fileDlg(FALSE);
- fileDlg.m_ofn.lpstrTitle="我的文件保存对话框";
- fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
- fileDlg.m_ofn.lpstrDefExt="txt";
- if(IDOK==fileDlg.DoModal())
- {
- CFile file(fileDlg.GetFileName(),CFile::modeCreate | CFile::modeWrite);
- file.Write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
- file.Close();
- }
- CFileDialog fileDlg(TRUE);
- fileDlg.m_ofn.lpstrTitle="我的文件打开对话框";
- fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
- if(IDOK==fileDlg.DoModal())
- {
- CFile file(fileDlg.GetFileName(),CFile::modeRead);
- char *pBuf;
- DWORD dwFileLen;
- dwFileLen=file.GetLength();
- pBuf=new char[dwFileLen+1];
- pBuf[dwFileLen]=0;
- file.Read(pBuf,dwFileLen);
- file.Close();
- MessageBox(pBuf);
- }
转载于:https://blog.51cto.com/hantayi/382524
孙鑫mfc学习笔记第十二课相关推荐
- 孙鑫mfc学习笔记第十四课
第十四课 网络的相关知识,网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系.此后,应用程序送给Socket的数据,由Sock ...
- 《SQL必知必会》学习笔记——第十二课 连结表
第十二课 连结表 一.创建连结 SELECT inf.id, age, rank FROM inf,score WHERE inf.id = score.id; 注意 WHERE inf.id = s ...
- 孙鑫MFC学习笔记1.Windows应用程序运行机理
1.MSG结构 hwnd:窗口句柄 message:消息类型 wParam & lParam:消息的附加信息(比如键值) time:消息被投递的时间 tip:typedef的作用是从变量类型区 ...
- mfc编程 孙鑫_孙鑫MFC学习笔记6:菜单编程
1.对菜单响应的顺序: 视类,文档类,框架类,应用程序类 2.消息的分类 3.CWnd继承自CCmdTarget类, 所以从CWnd派生出的类也可以接收WM_COMMAND消息 4.命令的消息路由 5 ...
- mfc编程 孙鑫_孙鑫MFC学习笔记7:对话框编程(上)
1.DoModal创建模态对话框 2.Create创建非模态对话框(需要用ShowWindow显示出来) 模态:对话框显示,程序会暂停,直到对话框关闭 非模态:对话框显示,程序继续执行 3.对于模态对 ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Windows保护模式学习笔记(十二)—— 控制寄存器
Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...
- 汇编入门学习笔记 (十二)—— int指令、port
疯狂的暑假学习之 汇编入门学习笔记 (十二)-- int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...
- OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器
OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...
- QT学习笔记(十二):透明窗体设置
QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...
最新文章
- Ext 整合 Jquery
- C++知识点53——虚继承
- 【HM】第11课:JSTL标签+JSP开发模式
- java中打开指定的文件夹
- 三家逐鹿,私有化部署能帮神策数据杀出重围么?| 公司调研
- 用JavaScript实现100以内自然数求和
- Ubuntu 14.10安装libvirt KVM
- Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight respo
- [转载] python类运算符的重载
- Hive 1.1.0 某些字段的查询结果为NULL
- 【答辩问题】计算机专业本科毕业设计答辩的一般程序3
- Python入门--字符串的判断操作
- caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0
- 指令、微程序、微指令、微命令、微操作之间的联系
- HTML中如何引用数学运算符?
- Java编程:Integer的取值范围(-2^31~2^31-1)分析
- linux原子过程,linux系统编程:IO读写过程的原子性操作实验
- 音视频解封装:MP4核心Box详解及H264AAC打包方案
- FusionCharts(Falsh图表)免费版下载和使用
- webase1.5.3离线企业部署教程
热门文章
- Python让繁琐工作自动化——chapter12 处理Excel电子表格
- win10无法装载重装系统iso文件_华硕笔记本怎么自己重装系统|华硕笔记本自己装系统教程...
- kettle中Pan kitchen用法及bat写法
- python中@staticmethod_Python中的 @staticmethod@classmethod方法
- matlab 图片最多显示几张_matlab 如何一次显示多个图像,subplot不合适
- python中filter是什么意思_求能人解答python filter()和filter_by()区别是什么
- Java线程池ThreadPoolExecutor使用与解析
- 真甲先生 38期:2019年百度快排×××?
- Apache构建虚拟web主机
- Python3 数据类型-Number