第十二课

const char *与char * const的区别。C语言对文件读写的支持,FILE指针;文本文件和二进制文件的区别。用文本方式读写文件和以二进制方式读写文件的注意事项。C++对文件读写的支持,ofstream和ifstream的用法。Win32 SDK对文件读写的支持,CreateFile函数、WriteFile函数、ReadFile函数的使用;MFC对文件读写的支持,CFile类和 CFileDialog的使用,文件过滤器的设置。win.ini文件和注册表的读写方式及相关知识点。

  1. Ini 文件操作
  2. ::WriteProfileString("http://www.sunxin.org","admin","zhangsan");写入ini,注册表
  3. CString str;
  4. ::GetProfileString("http://www.sunxin.org","admin","lisi",str.GetBuffer(100),100);读取ini,
  5. 注册表
  6. 注册表的操作
  7. 写入
  8. WriteProfileString("my ini test","jiajia","i love hf very much");
  9. GetProfileString("my ini test","jiajia","lisi");
  10. void CFileView::OnRegWrite()
  11. {
  12. // TODO: Add your command handler code here
  13. HKEY hKey;
  14. DWORD dwAge=30;
  15. RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",&hKey);
  16. RegSetValue(hKey,NULL,REG_SZ,"zhangsan",strlen("zhangsan"));        设置缺省项值
  17. RegSetValueEx(hKey,"age",0,REG_DWORD,(CONST BYTE*)&dwAge,4);设置注册表项值
  18. RegCloseKey(hKey);关闭注册表
  19. }
  20. void CFileView::OnRegRead()
  21. {
  22. // TODO: Add your command handler code here
  23. /*  LONG lValue;
  24. RegQueryValue(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",
  25. NULL,&lValue);读取注册表项缺省值
  26. char *pBuf=new char[lValue];
  27. RegQueryValue(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",
  28. pBuf,&lValue);
  29. MessageBox(pBuf);*/
  30. HKEY hKey;
  31. RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",&hKey);
  32. 打开注册表
  33. DWORD dwType;
  34. DWORD dwValue;
  35. DWORD dwAge;
  36. RegQueryValueEx(hKey,"age",0,&dwType,(LPBYTE)&dwAge,&dwValue);
  37. CString str;
  38. str.Format("age=%d",dwAge);
  39. MessageBox(str);
  40. }
  1. 写入文件
  2. C语言的方法
  3. /*  FILE *pFile=fopen("1.txt","w");
  4. fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
  5. //fseek(pFile,0,SEEK_SET);
  6. //fwrite("ftp:",1,strlen("ftp:"),pFile);
  7. //fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
  8. fclose(pFile);*/
  9. //fflush(pFile);
  10. /*  FILE *pFile=fopen("2.txt","wb");
  11. char ch[3];
  12. ch[0]='a';
  13. ch[1]=10;
  14. ch[2]='b';
  15. fwrite(ch,1,3,pFile);
  16. fclose(pFile);*/
  17. /*FILE *pFile=fopen("3.txt","w");
  18. int i=98341;
  19. char ch[5];*/
  20. /*ch[0]=9+48;
  21. ch[1]=8+48;
  22. ch[2]=3+48;
  23. ch[3]=4+48;
  24. ch[4]=1+48;*/
  25. /*itoa(i,ch,10);
  26. //fwrite(&i,4,1,pFile);
  27. fwrite(ch,1,5,pFile);
  28. fclose(pFile);*/
  29. C++的方法
  30. /*  ofstream ofs("4.txt");
  31. ofs.write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
  32. ofs.close();*/
  33. 读取文件
  34. C语言的方法
  35. /*  FILE *pFile=fopen("1.txt","r");
  36. //  char ch[100];
  37. //  memset(ch,0,100);
  38. //  fread(ch,1,100,pFile);
  39. //  MessageBox(ch);
  40. char *pBuf;
  41. fseek(pFile,0,SEEK_END);
  42. int len=ftell(pFile);
  43. pBuf=new char[len+1];
  44. rewind(pFile);
  45. fread(pBuf,1,len,pFile);
  46. pBuf[len]=0;
  47. MessageBox(pBuf);
  48. fclose(pFile);*/
  49. /*  FILE *pFile=fopen("2.txt","rb");
  50. char ch[100];
  51. fread(ch,1,3,pFile);
  52. ch[3]=0;
  53. MessageBox(ch);
  54. fclose(pFile);*/
  55. C++的方法
  56. /*  ifstream ifs("4.txt");
  57. char ch[100];
  58. memset(ch,0,100);
  59. ifs.read(ch,100);
  60. ifs.close();
  61. MessageBox(ch);*/
  62. Windows api 操作
  63. /*  HANDLE hFile;
  64. hFile=CreateFile("5.txt",GENERIC_READ,0,NULL,OPEN_EXISTING, //创建,打开文件
  65. FILE_ATTRIBUTE_NORMAL,NULL);
  66. char ch[100];
  67. DWORD dwReads;
  68. ReadFile(hFile,ch,100,&dwReads,NULL);                //读取文件
  69. ch[dwReads]=0;
  70. CloseHandle(hFile);
  71. MessageBox(ch);*/
  72. /*  CFile file("6.txt",CFile::modeRead);
  73. char *pBuf;
  74. DWORD dwFileLen;
  75. dwFileLen=file.GetLength();
  76. pBuf=new char[dwFileLen+1];
  77. pBuf[dwFileLen]=0;
  78. file.Read(pBuf,dwFileLen);
  79. file.Close();
  80. MessageBox(pBuf);*/
  81. /*  HANDLE hFile;
  82. hFile=CreateFile("5.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,
  83. FILE_ATTRIBUTE_NORMAL,NULL);
  84. DWORD dwWrites;
  85. WriteFile(hFile,"http://www.sunxin.org",strlen("http://www.sunxin.org"),//写入文件
  86. &dwWrites,NULL);
  87. CloseHandle(hFile);*/
  88. /*  CFile file("6.txt",CFile::modeCreate | CFile::modeWrite);
  89. file.Write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
  90. file.Close();*/
  91. 通用控件的文件操作
  92. CFileDialog fileDlg(FALSE);
  93. fileDlg.m_ofn.lpstrTitle="我的文件保存对话框";
  94. fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
  95. fileDlg.m_ofn.lpstrDefExt="txt";
  96. if(IDOK==fileDlg.DoModal())
  97. {
  98. CFile file(fileDlg.GetFileName(),CFile::modeCreate | CFile::modeWrite);
  99. file.Write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
  100. file.Close();
  101. }
  102. CFileDialog fileDlg(TRUE);
  103. fileDlg.m_ofn.lpstrTitle="我的文件打开对话框";
  104. fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
  105. if(IDOK==fileDlg.DoModal())
  106. {
  107. CFile file(fileDlg.GetFileName(),CFile::modeRead);
  108. char *pBuf;
  109. DWORD dwFileLen;
  110. dwFileLen=file.GetLength();
  111. pBuf=new char[dwFileLen+1];
  112. pBuf[dwFileLen]=0;
  113. file.Read(pBuf,dwFileLen);
  114. file.Close();
  115. MessageBox(pBuf);
  116. }

转载于:https://blog.51cto.com/hantayi/382524

孙鑫mfc学习笔记第十二课相关推荐

  1. 孙鑫mfc学习笔记第十四课

    第十四课 网络的相关知识,网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系.此后,应用程序送给Socket的数据,由Sock ...

  2. 《SQL必知必会》学习笔记——第十二课 连结表

    第十二课 连结表 一.创建连结 SELECT inf.id, age, rank FROM inf,score WHERE inf.id = score.id; 注意 WHERE inf.id = s ...

  3. 孙鑫MFC学习笔记1.Windows应用程序运行机理

    1.MSG结构 hwnd:窗口句柄 message:消息类型 wParam & lParam:消息的附加信息(比如键值) time:消息被投递的时间 tip:typedef的作用是从变量类型区 ...

  4. mfc编程 孙鑫_孙鑫MFC学习笔记6:菜单编程

    1.对菜单响应的顺序: 视类,文档类,框架类,应用程序类 2.消息的分类 3.CWnd继承自CCmdTarget类, 所以从CWnd派生出的类也可以接收WM_COMMAND消息 4.命令的消息路由 5 ...

  5. mfc编程 孙鑫_孙鑫MFC学习笔记7:对话框编程(上)

    1.DoModal创建模态对话框 2.Create创建非模态对话框(需要用ShowWindow显示出来) 模态:对话框显示,程序会暂停,直到对话框关闭 非模态:对话框显示,程序继续执行 3.对于模态对 ...

  6. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  7. Windows保护模式学习笔记(十二)—— 控制寄存器

    Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...

  8. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  9. OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器

    OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...

  10. QT学习笔记(十二):透明窗体设置

    QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...

最新文章

  1. Ext 整合 Jquery
  2. C++知识点53——虚继承
  3. 【HM】第11课:JSTL标签+JSP开发模式
  4. java中打开指定的文件夹
  5. 三家逐鹿,私有化部署能帮神策数据杀出重围么?| 公司调研
  6. 用JavaScript实现100以内自然数求和
  7. Ubuntu 14.10安装libvirt KVM
  8. Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight respo
  9. [转载] python类运算符的重载
  10. Hive 1.1.0 某些字段的查询结果为NULL
  11. 【答辩问题】计算机专业本科毕业设计答辩的一般程序3
  12. Python入门--字符串的判断操作
  13. caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0
  14. 指令、微程序、微指令、微命令、微操作之间的联系
  15. HTML中如何引用数学运算符?
  16. Java编程:Integer的取值范围(-2^31~2^31-1)分析
  17. linux原子过程,linux系统编程:IO读写过程的原子性操作实验
  18. 音视频解封装:MP4核心Box详解及H264AAC打包方案
  19. FusionCharts(Falsh图表)免费版下载和使用
  20. webase1.5.3离线企业部署教程

热门文章

  1. Python让繁琐工作自动化——chapter12 处理Excel电子表格
  2. win10无法装载重装系统iso文件_华硕笔记本怎么自己重装系统|华硕笔记本自己装系统教程...
  3. kettle中Pan kitchen用法及bat写法
  4. python中@staticmethod_Python中的 @staticmethod@classmethod方法
  5. matlab 图片最多显示几张_matlab 如何一次显示多个图像,subplot不合适
  6. python中filter是什么意思_求能人解答python filter()和filter_by()区别是什么
  7. Java线程池ThreadPoolExecutor使用与解析
  8. 真甲先生 38期:2019年百度快排×××?
  9. Apache构建虚拟web主机
  10. Python3 数据类型-Number