void ToString(CString& sRes, CConfig& conf) { CConfig::EntryMapIterator it = conf.BeginEntries(); while (it != conf.EndEntries()) { const CString& sKey = it->first; const VCString& vsEntries = it->second; VCString::const_iterator i = vsEntries.begin(); if (i == vsEntries.end()) sRes += sKey + " <- Error, empty list!\n"; else while (i != vsEntries.end()) { sRes += sKey + "=" + *i + "\n"; ++i; } ++it; } CConfig::SubConfigMapIterator it2 = conf.BeginSubConfigs(); while (it2 != conf.EndSubConfigs()) { std::map<CString, CConfigEntry>::const_iterator it3 = it2->second.begin(); while (it3 != it2->second.end()) { sRes += "->" + it2->first + "/" + it3->first + "\n"; ToString(sRes, *it3->second.m_pSubConfig); sRes += "<-\n"; ++it3; } ++it2; } }