?? aphearsayinifile.c
字號(hào):
/****************************************************************************/
/* */
/* Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD */
/* */
/* FILE NAME: ApHearSayIniFile.c */
/* MODULE NAME: AP應(yīng)用程序 */
/* DESCRIPTION: HearSay Setting File */
/* */
/* FUNCTIONS: */
/* */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-03-11 V1.00B */
/****************************************************************************/
#include "ap.h"
#include "ApHearSay.h"
#include "ApHearsaySet.h"
typedef struct tagINIFILEF{
UINT8 szFileTag[4];
UINT32 dwMode;
UINT32 dwTimes;
}INITFILE_HDR;
typedef struct tagINIFILE{
INITFILE_HDR aFilehdr;
UINT8 szFilePath[FILE_MAX_NAMELEN+1];
UINT8 szFilePathEx[FILE_MAX_NAMELEN+1]; /// This is for TongBu
}INITFILE;
//--------------------------
// For seeting file
#define APHEARSAYSET_SET_FIXPATH (const char *)"A:/SYSTEM/HEARSAY.INI"
//--------------------------
#define APHEARSAYSET_SET_ATTRIB (ARDONLY|AHIDDEN)
#define APHEARSAYSET_AUTO_DEF 0
#define APHEARSAYSET_TIMES_DEF 3
#define APHEARSAYSET_INI_FILENAME (const char *)"HEARSAY.INI"
#define APHEARSAYSET_INI_TAG (const char *)"SET"
#define APHEARSAYSET_SET_FAIL (const char *)"系統(tǒng)設(shè)置保存失敗!"
//============================
extern RrParam g_RrParam;
extern HEARSAYSET g_aHSSetting;
/****************************************************************************/
/* FUNCTION: BOOL LoadSaveFile (UINT8 *p) */
/* DESCRIPTION: */
/* RETURN: TRUE for success */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-03-11 V1.00B */
/****************************************************************************/
// This is for exporting function
// For "同步教材"
//---------------------------------
BOOL LoadSaveFile(UINT8 *p)
{
INT hIni;
BOOL bRet;
UINT8 pFile[FILE_MAX_NAMELEN+1]; // Note Here
strcpy((char*)pFile,(const char*)APHEARSAYSET_SET_FIXPATH);
// 文件存在則打開(kāi),不存在則創(chuàng)建并打開(kāi)
bRet=FALSE;
FileSetAttributes ((char*)pFile, ANORMAL);
hIni = FileOpen(pFile, FILEMODE_READONLY);
if (hIni>=0)
{
FileSeek(hIni, (12+FILE_MAX_NAMELEN+1), FILESEEK_BEGIN);
p[0]=0;
if (FileRead(hIni,(char*)p,FILE_MAX_NAMELEN)==FILE_MAX_NAMELEN)
{
bRet=TRUE;
}
FileClose(hIni); //關(guān)閉文件系統(tǒng)
FileSetAttributes( (char*)pFile, APHEARSAYSET_SET_ATTRIB);
}
if ( (p[0] == 0)
&& (bRet==TRUE) )
{
bRet= FALSE;
}
// if (!bRet)
// {
// //MsgBoxRun(MSGBOX_NONE, (UINT8*)"裝載參數(shù)失敗!");
// }
return bRet;
}
/****************************************************************************/
/* FUNCTION: BOOL EditLoadSetting(VOID) */
/* DESCRIPTION:load ini param of setting */
/* RETURN: TRUE for success */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-03-11 V1.00B */
/****************************************************************************/
BOOL EditLoadSetting(VOID)
{
INITFILE *pFile;
HFILE hIni;
BOOL bFileSucess;
BOOL bRet=FALSE;
UINT8 tag[4];
INT dwLen;
memset(&g_aHSSetting,0,sizeof(g_aHSSetting));
pFile=(INITFILE *)g_RrParam.pTBuf; // As buffer
strcpy((char*)pFile->szFilePath,(const char*)APHEARSAYSET_SET_FIXPATH);
bFileSucess=FALSE;
//文件存在則打開(kāi),不存在則創(chuàng)建并打開(kāi)
FileSetAttributes ((char*)pFile->szFilePath, ANORMAL);
hIni = FileOpen(pFile->szFilePath, FILEMODE_CREATEWRITE);
// Ini file buffer
memset(pFile,0,sizeof(INITFILE));
strcpy( pFile->aFilehdr.szFileTag,APHEARSAYSET_INI_TAG);
pFile->aFilehdr.dwMode = APHEARSAYSET_AUTO_DEF;
pFile->aFilehdr.dwTimes = APHEARSAYSET_TIMES_DEF;
strcpy( pFile->szFilePath,g_RrParam.pFile);
pFile->szFilePathEx[0] = 0;
if (g_RrParam.bSyncMtlEntry)
{
strcpy( pFile->szFilePathEx,g_RrParam.pFile);
}
if (hIni<0)
{
FileSeek(hIni, 0, FILESEEK_BEGIN);
FileRead(hIni, (char*)tag, 4);
if ( ( FileLength(hIni) < sizeof(INITFILE) )
|| (strcmp(tag, APHEARSAYSET_INI_TAG ) !=0) )
{
/*//當(dāng)文件長(zhǎng)度小于應(yīng)有長(zhǎng)度,認(rèn)為文件被破壞或文件還沒(méi)有被創(chuàng)建*/
FileSeek(hIni, 0, FILESEEK_BEGIN);
dwLen=FileWrite(hIni, (char*)pFile, sizeof(INITFILE));
if ( dwLen ==sizeof(INITFILE) )
{
bFileSucess=TRUE;
}
}
else
{
bFileSucess=TRUE;
}
}
else
{
bFileSucess=TRUE;
}
if (bFileSucess)
{
FileSeek(hIni, 0, FILESEEK_BEGIN);
FileRead(hIni, (char*)pFile, sizeof(INITFILE) );
if (g_RrParam.bSyncMtlEntry)
{
strcpy( pFile->szFilePathEx,g_RrParam.pFile);
}
FileSeek(hIni, 0, FILESEEK_BEGIN);
dwLen=FileWrite(hIni, (char*)pFile, sizeof(INITFILE));
FileClose(hIni); //關(guān)閉文件系統(tǒng)
if (dwLen!=sizeof(INITFILE))
{
bFileSucess=FALSE;
}
}
g_aHSSetting.hAuto =pFile->aFilehdr.dwMode;
g_aHSSetting.hTimes = pFile->aFilehdr.dwTimes;
/*文件創(chuàng)建失敗,參數(shù)設(shè)為默認(rèn)*/
strcpy((char*)pFile->szFilePath,(const char*)APHEARSAYSET_SET_FIXPATH);
if (!bFileSucess)
{
if (hIni>=0)
{
FileDelete((char*)pFile->szFilePath);
}
}
else
{
FileSetAttributes((char*)pFile->szFilePath, APHEARSAYSET_SET_ATTRIB);
}
LoadSaveParam();
return bRet;
}
/****************************************************************************/
/* FUNCTION: BOOL EditSaveSetting(VOID) */
/* DESCRIPTION:load ini param of setting */
/* RETURN: TRUE for success */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-03-11 V1.00B */
/****************************************************************************/
BOOL EditSaveSetting(VOID)
{
HFILE hIni;
INITFILE *pFile;
BOOL bFileSucess=FALSE;
INT dwLen;
pFile=(INITFILE *)g_RrParam.pTBuf; // As buffer
strcpy((char*)pFile->szFilePath,(const char*)APHEARSAYSET_SET_FIXPATH);
FileSetAttributes ((char*)pFile->szFilePath, ANORMAL);
hIni = FileOpen((char*)pFile->szFilePath, FILEMODE_READWRITE);
if (hIni>=0)
{
memset(pFile,0,sizeof(INITFILE));
strcpy( pFile->aFilehdr.szFileTag,APHEARSAYSET_INI_TAG);
pFile->aFilehdr.dwMode =g_aHSSetting.hAuto ;
pFile->aFilehdr.dwTimes =g_aHSSetting.hTimes;
strcpy((char*)pFile->szFilePath,(char*)g_RrParam.pFile);
if (g_RrParam.bSyncMtlEntry)
{
strcpy( pFile->szFilePathEx,g_RrParam.pFile);
}
else
{
FileSeek(hIni, (12+FILE_MAX_NAMELEN), FILESEEK_BEGIN);
FileRead(hIni,(char*)pFile->szFilePathEx,FILE_MAX_NAMELEN);
}
FileSeek(hIni, 0, FILESEEK_BEGIN);
dwLen=FileWrite(hIni, (char*)pFile, sizeof(INITFILE));
FileClose(hIni);
strcpy((char*)pFile->szFilePath,(const char*)APHEARSAYSET_SET_FIXPATH);
if ( dwLen ==sizeof(INITFILE) )
{
bFileSucess=TRUE;
FileSetAttributes( (char*)pFile->szFilePath, APHEARSAYSET_SET_ATTRIB);
}
else
{
FileDelete((char*)pFile->szFilePath);
}
}
LoadSaveParam();
if ( (hIni < 0)
|| (!bFileSucess) )
{
MsgBoxRun(MSGBOX_NONE, (UINT8*)APHEARSAYSET_SET_FAIL);
return FALSE;
}
return TRUE;
}
/****************************************************************************/
/* FUNCTION: BOOL PathSaveSetting(VOID) */
/* DESCRIPTION:load ini param of setting */
/* RETURN: TRUE for success */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-03-11 V1.00B */
/****************************************************************************/
BOOL PathSaveSetting(VOID)
{
return EditSaveSetting();
}
/****************************************************************************/
/* FUNCTION: BOOL LoadSaveParam(VOID) */
/* DESCRIPTION:load ini param of setting */
/* RETURN: TRUE for success */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* DennyHan 2006-03-11 V1.00B */
/****************************************************************************/
BOOL LoadSaveParam(VOID)
{
g_RrParam.wRptTotalCycles = g_aHSSetting.hTimes; // 復(fù)讀次數(shù)
// Clr current repeat mode
g_RrParam.wRptMode &= (~RR_MODE_MANUAL);
g_RrParam.wRptMode &= (~RR_MODE_AUTOMATIC);
if( g_aHSSetting.hAuto == 1)
{
g_RrParam.wRptMode |= RR_MODE_MANUAL; //手動(dòng)模式
}
else
{
g_RrParam.wRptMode |= RR_MODE_AUTOMATIC; //自動(dòng)模式
}
if ((g_RrParam.wRptMode & RR_MODE_NOMST))
{ // if no MST file
g_RrParam.wRptMode &= (~RR_MODE_AUTOMATIC);
g_RrParam.wRptMode |= RR_MODE_MANUAL; //手動(dòng)模式
}
else
{
g_RrParam.wRptMode &= (~RR_MODE_MANUAL);
g_RrParam.wRptMode |= RR_MODE_AUTOMATIC; //手動(dòng)模式
}
if ( g_RrParam.wRptMode & RR_MODE_NOTEXT)
{// if no text file
g_RrParam.wRptMode &= (~RR_MODE_AUTOMATIC);
g_RrParam.wRptMode |= RR_MODE_MANUAL; //手動(dòng)模式
}
return TRUE;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -