//-----------------------------------------------------------------------
	void ConfigFileEx::save(const DataStreamExPtr& _dataStream, const String& _separator, const String& _comments)
	{
		_dataStream->setEncoding("UTF-8");

		SettingsBySection::iterator secIt;
		for(secIt = mSettings.begin(); secIt!=mSettings.end(); secIt++)
		{
			if(secIt->first.size() > 0)
			{
				String line = "[" + secIt->first + "]";
				_dataStream->writeLine(line, EOL::CRLF);
			}
			SettingsMultiMap* sec = secIt->second;
			for(SettingsMultiMap::iterator it = sec->begin(); it != sec->end(); it++)
			{
				const String& key = it->first;
				const String& value = it->second;
				if(key.find_first_of(_comments) != 0)
				{
					String line = key + _separator + convertSpecialChars(value);
					_dataStream->writeLine(line, EOL::CRLF);
				}
			}
		}
		saved();
	}
Esempio n. 2
0
    void ConfigFile::save(ofstream& stream, const String& separators, bool trimWhitespace)
    {
        SettingsBySection::const_iterator section;
        for(section = mSettings.begin(); section != mSettings.end(); section++)
        {
            if (section->first != StringUtil::BLANK)
            {
                stream << "[" << section->first << "]" << endl;
            } else {
                /// Keine Sektion
            }
            SettingsMultiMap::const_iterator setting;
            SettingsMultiMap *settings = section->second;
            for(setting = settings->begin(); setting != settings->end(); setting++)
            {
                stream << setting->first << "=" << setting->second << endl;
            }

            // Insert a linebreak
            stream << endl;
        }
    }