📄 ini.h
字号:
// INI.h: interface for the CINI class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_INI_H__533BDAAF_C417_4195_BB95_1BE4F0AEAF66__INCLUDED_)
#define AFX_INI_H__533BDAAF_C417_4195_BB95_1BE4F0AEAF66__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef _INI_H_
#define _INI_H_
#ifndef SAFE_DELETE
#define SAFE_DELETE(x) if( (x)!=NULL ) { delete (x); (x)=NULL; }
#endif
#ifndef SAFE_FREE
#define SAFE_FREE(x) if( (x)!=NULL ) { free(x); (x)=NULL; }
#endif
//配置文件类
class CIni
{
////////////////////////////////////////////////
// 内部数据
////////////////////////////////////////////////
public:
char m_strFileName[MAX_PATH]; //文件名
long m_lDataLen; //文件长度
char* m_strData; //文件内容
char* name;//存放name
char* data;//存放data
int IndexNum; //索引数目([]的数目)
int *IndexList; //索引点位置列表
////////////////////////////////////////////////
// 通用接口
////////////////////////////////////////////////
public:
CIni();
CIni(char[],LPCTSTR); //初始化打开配置文件
virtual ~CIni(); //释放内存
////////////////////////////////////////////////
// 内部函数
private:
bool Open(char[],LPCTSTR); //打开配置文件
//1.初始化索引
void InitIndex();
//2.从当前位置p 开始计算 下一行的 字节位置
int GotoNextLine_position(int p);
//3.在指定位置读取索引值 Index
char *ReadIndexAt_p(int p);
//4.返回索引值为 index 的位置
int FindIndex_position(char *index);
//5.返回name的字节位置 其中p为4.返回的Index的位置
int FindNamePosition_at_IndexPos_p(int p, char *name0);
//6. 在指定的位置读取 name和data, 其中p为5.返回的name的位置
char *ReadNameAndDataAt_p(int p, int tagNameOrData);//当tagNameOrData=1时,返回name,=2时返回data
////////////////////////////////////////////////
//外部接口
public:
//7. 利用 6.读取index下的name值
double ReadData(char *index,char *name);
bool Write(char *index, char *name, char *string);
//8. 在当前位置修改一个数据的值
bool ModityData(int p, char *name, char *string);
bool Save(char *filename=NULL); //保存配置文件
//void Close();
};
#endif
#endif // !defined(AFX_INI_H__533BDAAF_C417_4195_BB95_1BE4F0AEAF66__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -