CMarkup浏览
我现在用CMarkup类浏览xml文件,用load函数打开xml文件,然后读取相关内容,程序工作正常,但奇怪的是,我从网上找到的例程没有类似关闭文件的操作,难倒在load内部就实现关闭了吗?不再需要关闭文件吗?
[解决办法]
看看析构函数呢
[解决办法]
bool CMarkup::Load( MCD_CSTR_FILENAME szFileName ){ if ( m_nDocFlags & (MDF_READFILE|MDF_WRITEFILE) ) return false; if ( ! ReadTextFile(szFileName, m_strDoc, &m_strResult, &m_nDocFlags) ) return false; return x_ParseDoc();}bool CMarkup::ReadTextFile( MCD_CSTR_FILENAME szFileName, MCD_STR& strDoc, MCD_STR* pstrResult, int* pnDocFlags, MCD_STR* pstrEncoding ){ // Static utility method to load text file into strDoc // FilePos file; file.m_nDocFlags = (pnDocFlags?*pnDocFlags:0) | MDF_READFILE; bool bSuccess = file.FileOpen( szFileName ); if ( pstrResult ) *pstrResult = file.m_strIOResult; MCD_STRCLEAR(strDoc); if ( bSuccess ) { file.FileSpecifyEncoding( pstrEncoding ); file.m_nOpFileByteLen = (int)((MCD_INTFILEOFFSET)(file.m_nFileByteLen - file.m_nFileByteOffset)); bSuccess = file.FileReadText( strDoc ); file.FileClose();// 很明显嘛,读完关闭 if ( pstrResult ) *pstrResult += file.m_strIOResult; if ( pnDocFlags ) *pnDocFlags = file.m_nDocFlags; } return bSuccess;}
[解决办法]
楼上说得对,而且用这个类无需关心内部实现,知道怎么使用那些方法就可以了.当然要研究是另外一回事.