iniload.cpp

来自「jedit 一个小型java编译器的源码」· C++ 代码 · 共 78 行

CPP
78
字号
#include"iniload.h"

#include<fstream>

#pragma warning(disable:4786)

bool IniLoad::Load(TCHAR* filename)
{
	if(filename==NULL) return false;
	
	fstream fs;
	string line;
	size_t ip;
	fs.open(filename,ios::in);
	while(fs.good())
	{
		string key=_T(""),value=_T("");

		getline(fs,line);
		ip=line.find_first_of(_T("="));
		if (ip==line.npos )
			return false;
		key=line.substr(0,ip);
		value=line.substr(ip+1);

		ip=key.find_first_not_of(_T(" "));
		if(ip==key.npos) 
			return false;
		key=key.substr(ip);
		ip=key.find(_T(" "));
		if(ip!=key.npos)
			key=key.substr(0,ip);

		ip=value.find_first_not_of(_T(" "));
		if(ip!=value.npos)
			value=value.substr(ip);
		ip=value.find(_T(" "));
		if(ip!=value.npos)
			value=value.substr(0,ip);

		m_IniMap[key]=value;	
	}
	fs.close();
	return true;
}
bool IniLoad::Get(string key,string& value)
{
	map< string, string >::iterator im=m_IniMap.find(key);
	if(im==m_IniMap.end())
		return false;
	value=m_IniMap[key];
	return true;
}
void IniLoad::Put(string key,string value)
{
	m_IniMap[key]=value;
}
bool IniLoad::Save(TCHAR* filename)
{
	if(filename==NULL) return false;
	
	fstream fs;
	fs.open(filename,ios::out);
	if(!fs.good()) return false;
	for ( map< string, string >::iterator im = m_IniMap.begin();
			im != m_IniMap.end(); ++im )
	{
		fs<<im->first<<_T("=")<<im->second<<endl;
	}
	fs.close();
	return true;
}
void IniLoad::Put(string key,long value)
{
	char Value[256];
	itoa(value,Value,10);
	Put(key,Value);
}

⌨️ 快捷键说明

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