#include "stdafx.h" #include "ServerInfo.h" //#include "string.h" const char* CServerInfo::ms_szInfoFileName = "AdminToolServerSetup.ini"; CServerInfo::CServerInfo() { Reload(ms_szInfoFileName); } CServerInfo::~CServerInfo() { m_ServerInfoTable.clear( ); } const char* CServerInfo::GetFileName( ) { return CServerInfo::ms_szInfoFileName; } bool CServerInfo::Reload(const char* szFileName) { m_ServerInfoTable.clear(); FILE* lpFile = fopen(szFileName, "rt"); if(NULL == lpFile) { return false; } const int MAX_LINE = 4096; char szBuffer[MAX_LINE]; std::string szKeyString; while(0 != fgets(szBuffer, MAX_LINE, lpFile)) { char* szKey = strtok(szBuffer, " =\t\n"); char* szValue = strtok(NULL, " =\t\n"); if(NULL != szKey && NULL != szValue && '[' != szKey[0] && '#' != szKey[0]) { szKeyString.assign(szKey); m_ServerInfoTable[szKeyString] = szValue; } } fclose(lpFile); return true; } const char* CServerInfo::GetValue(const char* szKeyName) { const int MAX_BUFFER = 256; char szBuffer[MAX_BUFFER]; strncpy(szBuffer, szKeyName, MAX_BUFFER); szBuffer[MAX_BUFFER - 1] = 0; ServerInfoTable::iterator finditr = m_ServerInfoTable.find(szBuffer); return (finditr != m_ServerInfoTable.end()) ? finditr->second.c_str() : NULL; }