//----------------------------------------------------------------------- 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(); }
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; } }