BOOL KTrackList::Save() { BOOL bResult = false; int nRetCode = 0; ITabFile* piTabFile = NULL; int nLine = 0; char szFileName[MAX_PATH]; snprintf(szFileName, sizeof(szFileName), "%s/%s/track.tab", SETTING_DIR, TRACK_DIR); szFileName[sizeof(szFileName) - 1] = '\0'; piTabFile = g_CreateTabFile(); KGLOG_PROCESS_ERROR(piTabFile); nRetCode = piTabFile->InsertNewCol(COL_ID); KGLOG_PROCESS_ERROR(nRetCode != -1); nRetCode = piTabFile->InsertNewCol(COL_MAP); KGLOG_PROCESS_ERROR(nRetCode != -1); nRetCode = piTabFile->InsertNewCol(COL_DESC); KGLOG_PROCESS_ERROR(nRetCode != -1); nLine = 2; for (KTRACK_TABLE::iterator it = m_TrackTable.begin(); it != m_TrackTable.end(); ++it) { DWORD dwID = it->first; KTRACK_INFO* pTrackInfo = &it->second; nRetCode = piTabFile->WriteInteger(nLine, COL_ID, dwID); KGLOG_PROCESS_ERROR(nRetCode); nRetCode = piTabFile->WriteInteger(nLine, COL_MAP, pTrackInfo->dwMapID); KGLOG_PROCESS_ERROR(nRetCode); nRetCode = piTabFile->WriteString(nLine, COL_DESC, pTrackInfo->szDesc); KGLOG_PROCESS_ERROR(nRetCode); nRetCode = SaveTrack(dwID, pTrackInfo->Track); KGLOG_PROCESS_ERROR(nRetCode); nLine++; } nRetCode = piTabFile->Save(szFileName); KGLOG_PROCESS_ERROR(nRetCode); bResult = true; Exit0: KG_COM_RELEASE(piTabFile); return bResult; }
BOOL KTrackList::SaveTrack(DWORD dwID, const KTRACK& crTrack) { BOOL bResult = false; int nRetCode = 0; ITabFile* piTabFile = NULL; int nLineIndex = 0; char szFileName[MAX_PATH]; snprintf(szFileName, sizeof(szFileName), "%s/%s/track%u.tab", SETTING_DIR, TRACK_DIR, dwID); szFileName[sizeof(szFileName) - 1] = '\0'; piTabFile = g_CreateTabFile(); KGLOG_PROCESS_ERROR(piTabFile); nRetCode = piTabFile->InsertNewCol(COL_X); KGLOG_PROCESS_ERROR(nRetCode != -1); nRetCode = piTabFile->InsertNewCol(COL_Y); KGLOG_PROCESS_ERROR(nRetCode != -1); nRetCode = piTabFile->InsertNewCol(COL_Z); KGLOG_PROCESS_ERROR(nRetCode != -1); nLineIndex = 2; for (KTRACK::const_iterator it = crTrack.begin(); it != crTrack.end(); ++it) { nRetCode = piTabFile->WriteInteger(nLineIndex, COL_X, it->nX); KGLOG_PROCESS_ERROR(nRetCode); nRetCode = piTabFile->WriteInteger(nLineIndex, COL_Y, it->nY); KGLOG_PROCESS_ERROR(nRetCode); nRetCode = piTabFile->WriteInteger(nLineIndex, COL_Z, it->nZ); KGLOG_PROCESS_ERROR(nRetCode); nLineIndex++; } nRetCode = piTabFile->Save(szFileName); KGLOG_PROCESS_ERROR(nRetCode); bResult = true; Exit0: KG_COM_RELEASE(piTabFile); return bResult; }