ini.h
上传用户:whyxdz88
上传日期:2007-07-26
资源大小:4k
文件大小:2k
源码类别:

文件操作

开发平台:

Visual C++

  1. //********************************************
  2. // Ini 相关函数
  3. //********************************************
  4. #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
  5. #include <afxwin.h>         // MFC core and standard components
  6. #include <afxext.h>         // MFC extensions
  7. #include <afxdisp.h>        // MFC Automation classes
  8. #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
  9. #include <afxcmn.h>
  10. #ifndef _INI_H_
  11. #define _INI_H_
  12. #ifndef SAFE_DELETE
  13. #define SAFE_DELETE(x) if( (x)!=NULL ) { delete (x); (x)=NULL; }
  14. #endif
  15. #ifndef SAFE_DELETE_ARRAY
  16. #define SAFE_DELETE_ARRAY(x) if( (x)!=NULL ) { delete[] (x); (x)=NULL; }
  17. #endif
  18. #ifndef SAFE_FREE
  19. #define SAFE_FREE(x) if( (x)!=NULL ) { free(x); (x)=NULL; }
  20. #endif
  21. #ifndef SAFE_RELEASE
  22. #define SAFE_RELEASE(x) if( (x)!=NULL ) { (x)->Release(); (x)=NULL; }
  23. #endif
  24. #define ERROR_DATA -99999999
  25. //配置文件类
  26. class CIni
  27. {
  28. public:
  29. bool Open(char *); // 打开配置文件
  30. void Close(); // 关闭配置文件
  31. void Save(char *filename=NULL); // 保存配置文件
  32. int ReadInt(char *, char *); // 读一个整数
  33. char *ReadText(char *, char *); // 读一个字符串
  34. void Write(char *, char *, int); // 写一个整数
  35. void Write(char *, char *, char *); // 写一个字符串
  36. void DeleteIndex(char *index); // 删除一段
  37. void DeleteName(char *index,char *name); // 删除段中一键名行
  38. void AddIndex(char *); //加入一个索引
  39. int FindHead(int index, char *string);
  40. int FindIndex(char *); // 返回标题位置
  41. CIni();
  42. CIni(char*); //初始化打开配置文件
  43. virtual ~CIni(); //释放内存
  44. private:
  45. void InitIndex(); // 初始化索引
  46. int FindData(int, char *); // 返回数据位置
  47. int GotoNextLine(int);  // 获得下一行
  48. char *ReadDataName(int &); // 在指定位置读一数据名称
  49. char *ReadText(int); // 在指定位置读字符串
  50. char *ReadHeadName(int &p);
  51. void AddData(int, char *, char *); //在当前位置加入一个数据
  52. void ModityData(int, char *, char *); //在当前位置修改一个数据的值
  53. int GotoLastLine(char *index); //把指针移动到本INDEX的最后一行
  54. char m_strFileName[MAX_PATH]; //文件名
  55. long m_lDataLen; //文件长度
  56. char *m_strData; //文件内容
  57. int IndexNum; //索引数目([]的数目)
  58. int *IndexList; //索引点位置列表
  59. int Point; //当前指针
  60. int Line, Word; //当前行列
  61. };
  62. #endif