Пример #1
0
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;
}
Пример #2
0
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;
}