⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inifile.h

📁 《OpenGL游戏编程》这本书的配套源码。
💻 H
字号:
//========================================================
/**
*  @file      IniFile.h
*
*  项目描述: 构造游戏引擎
*  文件描述:  INI文件读写类
*  适用平台: Windows98/2000/NT/XP
*  
*  作者:     WWBOSS
*  电子邮件:  wwboss123@gmail.com
*  创建日期: 2007-07-26	
*  修改日期: 2007-07-26
*
*/ 
//========================================================
#ifndef _INI_FILE_H_
#define _INI_FILE_H_

//! 错误代码
#define ERROR_DATA -99999999

#include "stdafx.h"


/**\brief
 * INI文件读写类
 */
class CIniFile
{
public:
	CIniFile();
	~CIniFile();

	/**\brief
	 * 初始化打开配置文件
	 */
	CIniFile(char *);


	/**\brief
	 * 返回文件内容
	 */
	char*	GetData() {return Data;}
	
	
	/**\brief
	 * 返回文件的行数
	 */
	int		GetLines(int);

	
	/**\brief
	 * 打开配置文件
	 */
	BOOL	Open(char *);
	
	
	/**\brief
	 * 保存配置文件
	 */
	BOOL	Save(char *filename=NULL);


	/**\brief
	 * 读一个整数
	 */
	int		ReadInt(char *, char *);

	
	/**\brief
	 * 读一个字符串
	 */
	char*	ReadText(char *, char *);
	
	
	/**\brief
	 * 在指定的行读一整数
	 */
	int		ReadInt(char *, int );
	
	
	/**\brief
	 * 在指定的行读一字符串(等号后面的)
	 */
	char*	ReadText(char *, int);
	
	
	/**\brief
	 * 在指定行读一字符名称(等号前面的)
	 */
	char*	ReadData(char *, int);

	
	/**\brief
	 * 写一个整数
	 */
	BOOL	WriteInt(char *, char *, int);
	
	
	/**\brief
	 * 写一个字符串
	 */
	BOOL	WriteText(char *, char *, char *);

	
	/**\brief
	 * 返回连续的行数(从INDEX到第一个空行)
	 */
	int		GetContinueDataNum(char *);


private:
	//! 文件名
	char	FileName[MAX_PATH];
	
	//! 文件长度
	int		DataLen;
	
	//! 文件内容
	char*	Data;

	//! 索引数目([]的数目)
	int		IndexNum;
	
	//! 索引点位置列表
	int*	IndexList;

	//! 当前指针
	int		Point;
	
	//! 当前行列
	int		Line, Word;


	/**\brief
	 * 初始化索引
	 */
	void	InitIndex();
	
	
	/**\brief
	 * 返回标题位置
	 */
	int		FindIndex(char *);
	
	
	/**\brief
	 * 返回数据位置
	 */
	int		FindData(int, char *);
	
	
	/**\brief
	 *  提行
	 */
	int		GotoNextLine(int);
	
	
	/**\brief
	 * 在指定位置读一数据名称
	 */
	char*	ReadDataName(int &);
	
	
	/**\brief
	 * 在指定位置读字符串
	 */
	char*	ReadText(int);

	
	/**\brief
	 * 加入一个索引
	 */
	BOOL	AddIndex(char *);
	
	
	/**\brief
	 * 在当前位置加入一个数据
	 */
	BOOL	AddData(int, char *, char *);
	
	
	/**\brief
	 * 在当前位置修改一个数据的值
	 */
	BOOL	ModityData(int, char *, char *);

};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -