请教一段程序的功能
程序如下:
BOOL CSecret::SerializeBms( CString& filename ,BOOL bSave,CString& lic )
{
CFile theFile;
CFileException fe;
CArchiveException ae;
int nMode = 0;
if( bSave )
{
if( my_taccess(filename, 0x00) == 0x00 )
DeleteFile(filename);
nMode = CArchive::store;
if( !theFile.Open( filename, CFile::modeCreate | CFile::modeWrite, &fe ) )
return FALSE;
}
else
{
nMode = CArchive::load;
if( !theFile.Open( filename, CFile::modeRead, &fe ) )
return FALSE;
}
TRY{
CArchive ar( &theFile, nMode );
if( bSave )
{
ar<< m_strVersion;
ar<<m_points;
for(int i=0;i<20;i++)
ar<<(TCHAR&)m_company[i];
for(i=0;i<10;i++)
ar<<(TCHAR&)m_name[i];
ar << lic;
}
else
{
ar>> m_strVersion;
if( 0==_tcscmp(m_strVersion, LICENSE_VERSION_CE601) )
{
ar>> m_points;
for(int i=0;i<20;i++)
ar>>(TCHAR&)m_company[i];
for(i=0;i<10;i++)
ar>>(TCHAR&)m_name[i];
ar >> lic;
}
}
ar.Close();
theFile.Close();
}
CATCH( CFileException, fe)
{
theFile.Abort();
return FALSE;
}
AND_CATCH( CArchiveException, ae )
{
theFile.Abort();
return FALSE;
}
END_CATCH
return TRUE;
}
这段程序实现的功能:
首先try外面的if( bSave ) 满足要求的时候,以创建和写的方式打开文件名为filename的文件theFile,当不满足的时候说明文件已经存在,然后以只读的方式打开文件。
然后再以缓存的形式读取文件。当try里面的if( bSave )满足要求的时候,像缓存区中的文件theFile写m_strVersion,m_points等信息。否则不满足的时候,读取缓存区中
theFile文件中的m_strVersion,m_points等信息。
我上面的分析对吗?谢谢高手回答。