void CLocation::SetMember(size_t i, const string& str) { _ASSERTE(i < NB_MEMBER); switch (i) { case ID: m_ID = str; break; case NAME: m_name = str; break; case LAT: m_lat = ToDouble(str); break; case LON: m_lon = ToDouble(str); break; case ELEV: m_elev = ToDouble(str); break; case SSI: { StringVector SSIs(str.c_str(), "{}"); for (StringVector::const_iterator it = SSIs.begin(); it != SSIs.end(); it++) { string::size_type pos = it->find(':', 0); if (pos < string::npos) SetSSI(it->substr(0, pos), it->substr(pos + 1)); } break; } default: _ASSERTE(false); } }