Программирование игр
/ GameDev.ru / Программирование / Форум / Помогите с INI файлами

Помогите с INI файлами

IROV..Постоялецwww9 сен. 200418:09#0
есть ини фаил..
[SUPER]
test = ghgfh
google = ghghgh
look = gffgfg

теперь мне надо все это упаковать в std::map<std::string,std::string>
как это зделать помогите.. количество неизвесно.. 8(

Последняя правка: 9 сен. 2004 18:59

IROV..Постоялецwww9 сен. 200419:40#1
Удалёнwww9 сен. 200419:48#2
ну просто же, чего тут думать-то?
IROV..Постоялецwww9 сен. 200420:18#4
так первый вариант 8) рабочий 8))
std::map<std::string,std::string> parseIniSection(const char *Section,const char *iniFile)
{
	char strg[65535];
	char s0[256];
	char s1[256];
	std::map<std::string,std::string> m;
	GetPrivateProfileSection(Section,strg,sizeof(strg),iniFile);
	int i=0;
	for(;;)
	{
		std::string _s = &strg[i];
		if( _s.size() )
		{
			_s.replace(_s.find("="),1," ");
			sscanf(_s.c_str(),"%s %s",s0,s1);
			m[s0] = s1;
			i+=_s.size()+1;
		}
		else
		{
			break;
		}
	}
	return m;
}

IROV..Постоялецwww9 сен. 200420:21#5
NetImperia
спасибо буду юзать 8))
IROV..Постоялецwww9 сен. 200420:39#6
NetImperia
маленький баг.. тама есть 8)) ща фиксю..
IROV..Постоялецwww9 сен. 200420:45#7
NetImperia
ConfigFile::ConfigFile(std::string const& configFile)
{
	std::ifstream file(configFile.c_str());

	std::string line;
	std::string name;
	std::string value;
	std::string inSection;
	int posEqual;
	while (std::getline(file,line))
	{
		if ( ! line.length()) continue;

		if ( line[0] == '#') continue;
		if ( line[0] == ';') continue;

		if ( line[0] == '[')
		{
			inSection=line.substr(1,line.find(']')-1);
			continue;
		}

		posEqual=line.find('=');
		name = line.substr(0,posEqual);

//		for(;;)
//		{
//			std::string::size_type it = name.find(" ");
//			if( it != std::string::npos )
//			{
//				name.replace(it,1,"");
//			}
//			else
//			{
//				break;
//			}
//		}

		value = line.substr(posEqual+1);

		printf("insert [%s/%s]\n",inSection.c_str(),name.c_str());
		content_[inSection+'/'+name]=value;
	}
}

коментами добавлено то что надо добавить.. 8)

Jay-CНовичокwww9 сен. 200420:51#8
IROV..
Читай ICQ...

/ Форум / Программирование игр / Графика

Для определения, можете ли вы оставлять сообщения, необходимо войти в систему под своим логином.

2001—2010 © GameDev.ru — Разработка игр