#include "StdAfx.h" #include ".\stringtableparser.h" StringTableParser::StringTableParser(void) { m_XMLParser.Init(); } StringTableParser::~StringTableParser(void) { } VOID StringTableParser::Release() { m_mapMsgString.clear(); } BOOL StringTableParser::Load( TCHAR* pszFileName ) { if( !m_XMLParser.Load( pszFileName ) ) return FALSE; long nStingCount = 0; NODELISTPtr pStringNodeList = m_XMLParser.FindNodeList( L"//STRING", nStingCount ); if( pStringNodeList == NULL ) return FALSE; DWORD dwStringKey = 0; std::string strMsg; for( long nString = 0; nString < nStingCount; nString++ ) { NODEPtr pStringNode = m_XMLParser.FindNode( pStringNodeList, nString ); if( pStringNode == NULL ) continue; // ½ºÅ©¸µÅ°¸¦ ¾ò´Â´Ù. dwStringKey = 0; strMsg.clear(); if( !m_XMLParser.GetAttriDataDWORD( pStringNode, L"KEY", dwStringKey ) ) continue; if( !m_XMLParser.GetAttriDataStr( pStringNode, L"MSG", strMsg ) ) continue; m_mapMsgString.insert( std::make_pair( dwStringKey, strMsg ) ); } return TRUE; } VOID StringTableParser::GetMessage( DWORD dwKey, std::string& strMsg ) { strMsg.clear(); STRING_MAP_ITER iter = m_mapMsgString.find( dwKey ); if( iter != m_mapMsgString.end() ) //Á¸ÀçÇϸé. { strMsg = iter->second; } }