一个操作 ini 的类

来源:互联网 发布:连串相框淘宝网 编辑:程序博客网 时间:2024/04/30 01:13
操作INI文件,非常方便... 使用方法: 1.先把IniFile.h,IniFile.ccp加入Porject,在要使用该类的头文件中加入 #include "IniFile.h",及CIniFile IniFile 2.读取和写入: string = IniFile.GetString("section","item","默认") int = IniFile.GetInt("section","item",666) IniFile.SetString("section","item","设置值") IniFile.SetInt("section","item",666) 3.ini文件名及路径在初始化时,用SetFileName()设置-IniFile.h文件/***************************************************************** 文件名:读取当前目录下CIniFile类文件 日期:2004-1-18 作者:chao_jie E_Mail:chaojie2003@yahoo.com.cn 功能:系统提供的WriteProfileInt()等函数,写到注册表或 系统ini文件里,调用比较麻烦,而且会占用注册表资 源,下载了网上的ini类用起来又不太顺手,所以参照 写了一个读取当前目录下ini文件的类。程序有详细的 注释,欢迎批评指正。*****************************************************************//*//////////////////////////////////////////////////////////////////使用方法:1.先把IniFile.h,IniFile.ccp加入Porject,在要使用该类的头文件中加入 #include "IniFile.h",及CIniFile IniFile;2.读取和写入: string = IniFile.GetString("section","item","默认"); int = IniFile.GetInt("section","item",666); IniFile.SetString("section","item","设置值"); IniFile.SetInt("section","item",666);3.ini文件名及路径在初始化时,用SetFileName()设置注意事项:ini文件如果太长,读取速度会变慢,可以使用多个ini文件//////////////////////////////////////////////////////////////////*/// IniFile.h: interface for the CIniFile class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_INIFILE_H__33CAF5C6_7820_43EB_8D84_42CC1856C35C__INCLUDED_)#define AFX_INIFILE_H__33CAF5C6_7820_43EB_8D84_42CC1856C35C__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class CIniFile {public: void SetFileName(CString FileName); void WriteFileString(CString Section, CString Item, CString Value); CString GetFileString(CString Section, CString Item, CString Value); BOOL CIniFile::GetAllSecitons(CStringArray &saSections); BOOL CIniFile::GetSectionItems(CString strSection,CStringArray &saItems); CString GetString(CString Section, CString Item, CString Value); int GetInt(CString Section, CString Item, int Value); void SetString(CString Section, CString Item, CString Value); void SetInt(CString Section, CString Item, int Value); BOOL WriteIniFile(); BOOL ReadIniFile(); CIniFile(); virtual ~CIniFile(); //ini file CStdioFile IniFile; BOOL bFileExist; CStringArray FileContainer; CString m_sFileName;};#endif // !defined(AFX_INIFILE_H__33CAF5C6_7820_43EB_8D84_42CC1856C35C__INCLUDED_)IniFile.CPP 文件// IniFile.cpp: implementation of the CIniFile class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "IniFile.h"#include "locale.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////CIniFile::CIniFile(){ m_sFileName = _T("Product.ini");}CIniFile::~CIniFile(){ if(FileContainer.GetSize() > 0) { FileContainer.RemoveAll(); }}void CIniFile::SetFileName(CString FileName){ m_sFileName = FileName;}void CIniFile::SetInt(CString Section, CString Item, int Value){ CString strtemp; strtemp.Format(_T("%d"),Value); //保存到FileContainer WriteFileString(Section, Item, strtemp); //保存到ini文件 WriteIniFile();}void CIniFile::SetString(CString Section, CString Item, CString Value){ //保存到FileContainer WriteFileString(Section, Item, Value); //保存到ini文件 WriteIniFile();}CString CIniFile::GetString(CString Section, CString Item, CString Value){ return GetFileString(Section, Item, Value);}int CIniFile::GetInt(CString Section, CString Item, int Value){ CString strtemp; strtemp.Format(_T("%d"),Value); return _ttol(GetFileString(Section, Item, strtemp));}BOOL CIniFile::ReadIniFile(){ _tsetlocale(LC_ALL,_T("")); bFileExist=IniFile.Open(m_sFileName, CFile::modeRead); if(!bFileExist) { return FALSE; } CString strline; FileContainer.RemoveAll(); //将IniFile文件数据读到FileContainer while(IniFile.ReadString(strline)) { FileContainer.Add(strline); } IniFile.Close(); return TRUE;}BOOL CIniFile::WriteIniFile(){ bFileExist=IniFile.Open(m_sFileName, CFile::modeCreate | CFile::modeWrite); if(!bFileExist) return FALSE; CString strline; //将FileContainer写到IniFile文件 for(int i = 0; i< FileContainer.GetSize(); i++) { strline = FileContainer[i]; IniFile.WriteString(strline+"/n"); } IniFile.Close(); return bFileExist;}CString CIniFile::GetFileString(CString Section, CString Item, CString Value){ ReadIniFile();//打开文件 if(bFileExist == FALSE || FileContainer.GetSize() < 0) return Value;//文件打开出错或文件为空,返回默认值 int i = 0; int iFileLines = FileContainer.GetSize(); CString strline,str; while(i0) str = strline.Left(strline.Find(_T("=")));//去掉=右边 else str=strline; str.TrimLeft(); str.TrimRight(); saItems.Add(str); } } } } return TRUE;}void CIniFile::WriteFileString(CString Section, CString Item, CString Value){ ReadIniFile();//打开文件 int i = 0; int iFileLines = FileContainer.GetSize(); CString strline,str; while(i
  • 一个操作 ini 的类
  • 一个操作Ini文件的类
  • 一个操作Ini文件的类
  • 自己写的一个 ini 操作类
  • C#一个Ini操作类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 【转】轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 轻松实现一个操作ini文件的类
  • 一个用于Ini文件操作的辅助类
  • 轻松实现一个操作ini文件的类
  • 跨平台图形工具库 cairo
  • Windows 服务 与 Web服务中访问网络驱动器的问题(ERROR [HY024])
  • ORACLE对象名大小写敏感性相关的深入分析
  • cronjob & crontab
  • win窗体(eclipse .net ie等等)健康色
  • 一个操作 ini 的类
  • SAP 用户权限
  • cookie机制和session机制的区别(转载)
  • 落叶街 网站建设网址
  • RMI规范--第五章
  • 桌面快捷方式丢失问题全面解决方案
  • Process, Thread, STA, MTA, COM object
  • log4j学习笔记
  • 3!=3 3个月做到3年的经验
  • 原创粉丝点击