跪求一个读取配置文件的写法

two_55_eight 2008-03-26 08:55:20
本人是个刚起步的菜鸟,所以请高手赐教一个读取配置文件的函数的写法,
请举个例子说明。谢谢!
...全文
216 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
野男孩 2008-03-27
  • 打赏
  • 举报
回复
完整版,具体用法查MSDN

GetPrivateProfileInt
GetPrivateProfileSection
GetPrivateProfileSectionNames
GetPrivateProfileString
GetPrivateProfileStruct
GetProfileInt
GetProfileSection
GetProfileString
WritePrivateProfileSection
WritePrivateProfileString
WritePrivateProfileStruct
WriteProfileSection
WriteProfileString
dairsheng 2008-03-27
  • 打赏
  • 举报
回复
其实楼下两位的加在一起就更合适了。一个是具体的定义,一个是“解说”。
060 2008-03-26
  • 打赏
  • 举报
回复
楼上的哪个类其实就这两个函数

DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // ini配置文件的某一小节
LPCTSTR lpKeyName, // 这个小节的一个项
LPCTSTR lpDefault, // 默认值, 当配置文件中不存在 这样的节, 这个函数就返回这个默认值
LPTSTR lpReturnedString,// OUT,接收信息的字符串
DWORD nSize, // lpReturnedString的长度。当nSize比较小,不能容纳所有需要返回的内容时,这个函数将失败
LPCTSTR lpFileName // 配置文件名
);

BOOL WritePrivateProfileString(
LPCTSTR lpAppName,// ini配置文件的某一小节
LPCTSTR lpKeyName,// 这个小节的一个项
LPCTSTR lpString,//这个项的值
LPCTSTR lpFileName//配置文件名
);

昨夜无风 2008-03-26
  • 打赏
  • 举报
回复
[Quote:]
//IniReader.h

//#ifndef INIREADER_H
#define INIREADER_H
class CIniReader
{
public:
CIniReader(char* szFileName);
int ReadInteger(char* szSection, char* szKey, int iDefaultValue);
float ReadFloat(char* szSection, char* szKey, float fltDefaultValue);
bool ReadBoolean(char* szSection, char* szKey, bool bolDefaultValue);
char* ReadString(CString szSection, CString szKey, const char* szDefaultValue);
private:
char m_szFileName[255];



#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include "RdWrtIni.h"
/////////////////////////////////////////////////////
//IniReader.cpp
CIniReader::CIniReader(char* szFileName)
{
memset(m_szFileName, 0x00, 255);
memcpy(m_szFileName, szFileName, strlen(szFileName));
}
int CIniReader::ReadInteger(char* szSection, char* szKey, int iDefaultValue)
{
int iResult = GetPrivateProfileInt(szSection, szKey, iDefaultValue, m_szFileName);
return iResult;
}
float CIniReader::ReadFloat(char* szSection, char* szKey, float fltDefaultValue)
{
char szResult[255];
char szDefault[255];
float fltResult;
sprintf(szDefault, "%f",fltDefaultValue);
GetPrivateProfileString(szSection, szKey, szDefault, szResult, 255, m_szFileName);
fltResult = atof(szResult);
return fltResult;
}
bool CIniReader::ReadBoolean(char* szSection, char* szKey, bool bolDefaultValue)
{
char szResult[255];
char szDefault[255];
bool bolResult;
sprintf(szDefault, "%s", bolDefaultValue? "True" : "False");
GetPrivateProfileString(szSection, szKey, szDefault, szResult, 255, m_szFileName);
bolResult = (strcmp(szResult, "True") == 0 || strcmp(szResult, "true") == 0) ? true : false;
return bolResult;
}
char* CIniReader::ReadString(CString szSection,CString szKey, const char* szDefaultValue)
{
char* szResult = new char[255];
memset(szResult, 0x00, 255);
GetPrivateProfileString(szSection, szKey, szDefaultValue, szResult, 255, m_szFileName);
return szResult;
}
};
[/Quote]



给你个读ini文件的类
Erorr 2008-03-26
  • 打赏
  • 举报
回复
太难了,还是先读取一个普通文件吧
wuyu637 2008-03-26
  • 打赏
  • 举报
回复
我知道的配置文件有2种方法,
-----------------------------------------
一种是裸的明文的.txt文本的,
那种配置文件的读取要根据不同的需求,来写读配置文件,比较的不方便,尤其是有改动的时候,就要修改很麻烦。


还有一种是xml的配置文件,这种方式的优势很明显,可以比较动态的改变配置文件的读取而不要改动代码。
而xml的读取有一个开源的库比较好用。
tinyxml。。

强烈推介这种。。。
关于tinyxml的东西你可以上网搜一下。可以找到很多的信息。
qiannv 2008-03-26
  • 打赏
  • 举报
回复
不知道

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧