📄 aphearsayinifile.c
字号:
/****************************************************************************/
/* */
/* Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD */
/* */
/* FILE NAME: ApHearSayIniFile.c */
/* MODULE NAME: AP应用程序 */
/* 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 *)"系统设置保存失败!"
//============================
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);
// 文件存在则打开,不存在则创建并打开
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); //关闭文件系统
FileSetAttributes( (char*)pFile, APHEARSAYSET_SET_ATTRIB);
}
if ( (p[0] == 0)
&& (bRet==TRUE) )
{
bRet= FALSE;
}
// if (!bRet)
// {
// //MsgBoxRun(MSGBOX_NONE, (UINT8*)"装载参数失败!");
// }
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;
//文件存在则打开,不存在则创建并打开
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) )
{
/*//当文件长度小于应有长度,认为文件被破坏或文件还没有被创建*/
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); //关闭文件系统
if (dwLen!=sizeof(INITFILE))
{
bFileSucess=FALSE;
}
}
g_aHSSetting.hAuto =pFile->aFilehdr.dwMode;
g_aHSSetting.hTimes = pFile->aFilehdr.dwTimes;
/*文件创建失败,参数设为默认*/
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; // 复读次数
// 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; //手动模式
}
else
{
g_RrParam.wRptMode |= RR_MODE_AUTOMATIC; //自动模式
}
if ((g_RrParam.wRptMode & RR_MODE_NOMST))
{ // if no MST file
g_RrParam.wRptMode &= (~RR_MODE_AUTOMATIC);
g_RrParam.wRptMode |= RR_MODE_MANUAL; //手动模式
}
else
{
g_RrParam.wRptMode &= (~RR_MODE_MANUAL);
g_RrParam.wRptMode |= RR_MODE_AUTOMATIC; //手动模式
}
if ( g_RrParam.wRptMode & RR_MODE_NOTEXT)
{// if no text file
g_RrParam.wRptMode &= (~RR_MODE_AUTOMATIC);
g_RrParam.wRptMode |= RR_MODE_MANUAL; //手动模式
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -