void CConfiguration::LoadFromFile(const CString& FileName) { CStringList configuration, sub_strings; CStringListIterator iterator(&configuration); configuration.LoadFromFile(FileName); // for (int i = 0; i < configuration.GetCount(); i++) { ParseStr(configuration[i],"=;",sub_strings); CVariable variable = VarNamed(sub_strings[0]); if (variable.GetType()==VARIABLE_TYPE_CHAR) { CStringList sub_strings2; ParseStr(sub_strings[1],"''",sub_strings2); variable.SetString(sub_strings2[1]); } else if (variable.GetType()==VARIABLE_TYPE_STRING) { CStringList sub_strings2; ParseStr(sub_strings[1],"\"\"",sub_strings2); variable.SetString(sub_strings2[1]); } sub_strings.Clear(); } }
void CConfiguration::Print(std::ostream& out) { for (size_t i = 0; i < m_Variables.size(); i++) { CVariable *variable = m_Variables[i]; out<<variable->GetTypeName().GetCString()<<" "<<variable->GetName().GetCString()<<"="; if (VARIABLE_TYPE_STRING == variable->GetType()) { out<<"\""<<variable->GetString().GetCString()<<"\";"<<std::endl; } else if (VARIABLE_TYPE_CHAR == variable->GetType()) { out<<"'"<<variable->GetString().GetCString()<<"';"<<std::endl; } else { out<<variable->GetString().GetCString()<<";"<<std::endl; }} }
void ParaEngine::CVariable::Clone(const CVariable& value) { ChangeType(value.GetType()); m_strVal = value.m_strVal; memcpy(m_vector4, value.m_vector4, sizeof(float) * 4); if (value.m_pAnimated) { // TODO: copy animated data. PE_ASSERT(false); } }
void CConfiguration::SaveToFile(const CString& FileName) { FILE *stream = fopen(FileName.GetCString(),"wt"); for (size_t i = 0; i < m_Variables.size(); i++) { CVariable *variable = m_Variables[i]; CString string = variable->GetName()+"="; if ((variable->GetType()==VARIABLE_TYPE_STRING)|| (variable->GetType()==VARIABLE_TYPE_CHAR)) { string+="\""+variable->GetString()+"\""; } else { string+=variable->GetString(); } string.Append(';').AppendEOL(); fwrite(string.GetCString(),string.GetLength(),1,stream); } fclose(stream); }