亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aphearsayrdfile.c

?? 這個是好記星608的AP源代碼,他的主要是是GUI,還有對字典的操作
?? C
?? 第 1 頁 / 共 3 頁
字號:
/****************************************************************************/
/*                                                                          */
/*              Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD                   */
/*                                                                          */
/* FILE NAME:   ApHearSayRdFile.c                                           */
/* MODULE NAME: AP應用程序                                                  */
/* DESCRIPTION: Hearsya Browser Read File                                   */
/*                                                                          */
/* FUNCTIONS:                                                               */
/*                                                                          */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   DennyHan    2006-03-11         V1.00B                                  */
/****************************************************************************/

// 包含必要的頭文件
#include	"Ap.h"
#include	"ApHearSay.h"

extern RrParam		g_RrParam;

#define RR_MST_SEPRATOR     ' '		//0xE
// 缺省的復讀路徑
#define REREAD_DEFAULT_NAME     ".MST"
#define REREAD_MTL_FILE         ".MTL"
#define REREAD_TXT_FILE         ".TXT"


//mtl格式用到的關鍵字解壓
#define DICT_WORD_LEN			3
#define DICT_MAX_LEN			0x8000

//-------------------------
#define AU_MAX_FILELEN          (15*1024)   // Max File Length
#define AU_2_BLK_FILELEN        (8*1024)    // Max File Length

#define AU_MAX_FILELEN_ADD      (0*1024)    // Max File Length


//===============================
//句子之間分隔符號改為空格
static BOOL MstFileFilter(char *pBuf, UINT St, UINT End, BOOL Flag)
{
UINT j;

   	for (j = St; j < End; j ++)
    {
	    if (pBuf[j] == 0)
		{
  			pBuf[j] = RR_MST_SEPRATOR;
    		Flag = TRUE;
	    }
		else
  		{
       		if ((Flag == TRUE) && (j))
	    	{
		    	pBuf[j-1] = 0x0D;
    		}
	   	    Flag = FALSE;
	   	}
	}
	return Flag;
}

/****************************************************************************/
/* FUNCTION:   BOOL __RrReadMstFile()	        				    		*/
/* DESCRIPTION:                                                            */
/* INPUTS:     NULL                                                        */
/* OUTPUTS:    NONE                                                        */
/* RETURN:     TURE OR FAULSE                                              */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   Poul        2005-04-19            創建                                 */
/*   DennyHan    2006-03-13            V1.00B                               */
/****************************************************************************/
BOOL __RrReadMstFile(VOID)
{
SYNCDATAITEM	syncData;
MSTFILE_HEADER  mstFileHeader;

    //判斷復讀文件格式
    if (FileRead(g_RrParam.hRrMstFile, (char *)&mstFileHeader,sizeof(MSTFILE_HEADER))
        != sizeof(MSTFILE_HEADER)      )
    {
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }

    if (mstFileHeader.dwSignature != 0x54534D
        || mstFileHeader.wHeaderSize != sizeof(MSTFILE_HEADER)
        || mstFileHeader.wReserved1 != 0
        || mstFileHeader.wReserved2 != 0)
    {
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }

    // 沒有分段
    if (mstFileHeader.wNodes == 0)
    {
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }

    //申請讀取復讀文件Buf
    g_RrParam.dwDispLength = FileLength(g_RrParam.hRrMstFile);
	if(g_RrParam.dwDispLength > (AU_MAX_FILELEN + AU_MAX_FILELEN_ADD))
	{
		MsgBoxRun(MSGBOX_NONE,(UINT8*)"文本文件太長,打開失敗!");
		return FALSE;
	}

    g_RrParam.pDispBuf = MemAlloc(g_RrParam.dwDispLength + 1);
    if (g_RrParam.pDispBuf == NULL)
    {
        MsgBoxRun(MSGBOX_NONE,(UINT8*)"內存不足,打開文件失敗!");
        return FALSE;
    }

    memset(g_RrParam.pDispBuf, 0, g_RrParam.dwDispLength + 1);

    // 讀取第一段節點
    if (FileRead(g_RrParam.hRrMstFile, (char *)&syncData,sizeof(SYNCDATAITEM))
        != sizeof(SYNCDATAITEM))
    {
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }

    g_RrParam.dwDispHead = syncData.dwDataOffset;
    //讀取復讀文件
    FileSeek(g_RrParam.hRrMstFile, 0, FILESEEK_BEGIN);
    if (FileRead(g_RrParam.hRrMstFile,(char*) g_RrParam.pDispBuf, g_RrParam.dwDispLength)
         != (INT)g_RrParam.dwDispLength)
    {
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }

    //句子之間分隔符號改為空格
	{
    MstFileFilter(g_RrParam.pDispBuf, g_RrParam.dwDispHead,
                 g_RrParam.dwDispLength - 1,FALSE);

#if 0
		BOOL bPre;
		bPre = FALSE;
		for (i = g_RrParam.dwDispHead; i < g_RrParam.dwDispLength - 1; i ++)
		{
			if (g_RrParam.pDispBuf[i] == 0)
			{
				g_RrParam.pDispBuf[i] = RR_MST_SEPRATOR;
				bPre = TRUE;
			}
			else
			{
				if ((bPre == TRUE) && (i))
				{
					g_RrParam.pDispBuf[i-1] = 0x0D;
				}

				bPre = FALSE;
			}
		}
#endif
	}
	g_RrParam.pTextBuf=g_RrParam.pDispBuf+g_RrParam.dwDispHead;
    g_RrParam.pMstFileHdr = (MSTFILE_HEADER*) g_RrParam.pDispBuf;
    return TRUE;
}

//===============================
static BOOL    CopyMstToTmpFile(INT fdDst, INT fdSrc)
{
#define TEMP_BUF_LEN  (4*1024)
char *  pBuf;
INT     i,Len;
MSTFILE_HEADER  *pmstFileHeader;
BOOL    Filter;

    //temp Buf
    pBuf = MemAlloc(TEMP_BUF_LEN+1);
    if (!pBuf)
    {
        MsgBoxRun(MSGBOX_NONE,(UINT8*)"內存不足,打開文件失敗!");
        return FALSE;
    }

    FileSeek(fdSrc, 0, FILESEEK_BEGIN);
    if (FileRead(fdSrc, (char *)pBuf, sizeof(MSTFILE_HEADER) + sizeof(SYNCDATAITEM) )
        != (sizeof(MSTFILE_HEADER) +sizeof(SYNCDATAITEM))     )
    {
        MemFree(pBuf);
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }

    pmstFileHeader = (MSTFILE_HEADER  *)pBuf;
    if (pmstFileHeader->dwSignature != 0x54534D
        || (pmstFileHeader->wHeaderSize != sizeof(MSTFILE_HEADER))
        || (pmstFileHeader->wReserved1 != 0)
        || (pmstFileHeader->wReserved2 != 0)
        || (pmstFileHeader->wNodes == 0)    )
    {
        MemFree(pBuf);
		MsgBoxRun (MSGBOX_NONE, (UINT8*)"無法打開MST同步文件,可能是文件格式錯誤或者文件已損壞!");
        return FALSE;
    }


    // Start Copy
    i = ((SYNCDATAITEM	*)(pBuf+sizeof(MSTFILE_HEADER)))->dwDataOffset;
    FileSeek(fdSrc, i, FILESEEK_BEGIN);         // to Text Data
    Len = FileLength(fdSrc);
    Filter = FALSE;
    while(i < Len)
    {
    int j;
        // Read;
        j = FileRead(fdSrc,pBuf,TEMP_BUF_LEN  );
        if (j<=0)
        {
            break;
        }

        pBuf[j] = '\0';
        //句子之間分隔符號改為空格
        Filter = MstFileFilter(pBuf, 0, j-1, Filter);
        // Write to Temp File
        if (j != FileWrite(fdDst,pBuf,j))
        {
            MemFree(pBuf);
            return FALSE;
        }

        i+=j;
    }
    pBuf[0] =0;
    pBuf[1] =0;
    pBuf[2] =0;

    FileWrite(fdDst,pBuf,3);

    MemFree(pBuf);

    return TRUE;
}

/*************************************************************************
    Function   : UnzipData
    Description: unzip dictionary data

    Input:
        UINT32 dwKeyOffset      -
        UINT8* pUnZipDataBuf    -
        UINT8* pZipDataBuf      -
        UINT32 dwZipLength      -

    Return:
        UINT32  - unzip data size

      DATE      AUTHOR   VERSION  REMARKS
==========================================================================
    2004-05-25  HuangXM    1.0     create
**************************************************************************/
INT _CommInvert3ByteToInt(UINT8 *pNumStr)
{
INT Temp;
    Temp = 0;
    memcpy(&Temp, pNumStr, 3);
    return Temp;
}

UINT32 _Error(VOID)
{
    return 0;
}

static BOOL _SaveTempFile(INT f, UINT8 *pBuf, UINT uLen)
{
    if ( (INT)uLen != FileWrite(f,pBuf,uLen) )
    {   // Error
        _Error();
        return FALSE;
    }
    return TRUE;
}
//--------------------------------------------
// 2006.4.14. Dennyhan Change to temp file,
//      INT fSrc: Mtl File Handle
//      INT fDst: Mtl Temp Output file Handle
//----------------------------------
UINT32 UnzipData(UINT32 dwKeyOffset, UINT8* pUnZipDataBuf,
				  UINT8* pZipDataBuf, UINT32 dwLength,
                  INT fSrc, INT fDst )
{
UINT32	dwStatusBits, dwDictDataLen;//, i;
UINT32	dwZipOffset, dwKeyDataStart, dwKeyDataEnd;
UINT32	dwKey;
UINT8	byStatus;//, byFlag;
UINT8	*pKeyTable, *pKeyBuf;
BOOL	bNeedSpace;
UINT32	dwKeyNum;
UINT32  j,k,dwTotalLen;


    FileSeek(fSrc, 8, FILESEEK_BEGIN);      // 8 is Mst file head size

    //關鍵字個數
//	dwKeyNum = *(UINT32 *)dwKeyOffset;
	dwKeyNum = READ_DWORD(dwKeyOffset);
	
    ////關鍵字索引 地址
	pKeyTable = (UINT8 *)(dwKeyOffset + sizeof(UINT32));
    //關鍵字內容 地址
	pKeyBuf = (UINT8 *)  (dwKeyOffset + sizeof(UINT32) + (dwKeyNum + 1) * DICT_WORD_LEN);

	dwStatusBits = 0;
	bNeedSpace = FALSE;
	dwZipOffset = 0;
    dwTotalLen = 0;
	dwDictDataLen = 0;
//	i=0;		//Debug
    while(1)
    {
    INT nCurLen;
        nCurLen = FileRead(fSrc,&pZipDataBuf[dwZipOffset], dwLength - dwZipOffset);
        // here should be check the dwZpOffset
        // but by now it is ignored, because of the last one is zipped flag, skip the next following

		//i += nCurLen;
        if (nCurLen <= 0)
        {
			break;
        }
        else
        {
            nCurLen += dwZipOffset;
			dwZipOffset = 0;
        }

    	while( dwZipOffset < (UINT32)nCurLen)
    	{
    		if (dwStatusBits == 0)
    		{
    			byStatus = pZipDataBuf[dwZipOffset];
    			dwStatusBits = 8;
    			dwZipOffset ++;
    		}

     		if(byStatus & 0x80)         	    //判斷是否被壓縮
    		{	//被壓縮數據

    			if ( dwZipOffset >= (UINT32)(nCurLen-1) )
	    		{
	    		    if (dwZipOffset >= (UINT32)(nCurLen))
	    		    {// last one is flag
	    		        dwZipOffset = 0;
	    		        break;
	    		    }
		    		pZipDataBuf[0] = pZipDataBuf[dwZipOffset];
			    	dwZipOffset = 1;
				    break;
			    }
    			dwKey = 0;

				//得到壓縮索引號
    			dwKey = (((UINT32)pZipDataBuf[dwZipOffset]) << 8) | pZipDataBuf[dwZipOffset + 1];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区网站| 国产综合久久久久久鬼色| 精品国产乱码久久久久久久| 欧美在线不卡视频| 色综合久久久久久久久| 99v久久综合狠狠综合久久| 高清成人在线观看| 不卡视频在线看| 成人黄色免费短视频| 97久久超碰国产精品电影| 99国产精品国产精品久久| 成人理论电影网| 欧美自拍偷拍午夜视频| 欧美久久久久久久久| 欧美mv日韩mv| 国产日韩欧美精品电影三级在线| 中文字幕精品一区二区精品绿巨人| 国产精品国产精品国产专区不蜜| 日本一区二区三区在线观看| 中文字幕在线观看一区二区| 亚洲成人中文在线| 日本伊人色综合网| 国产一区亚洲一区| 97久久超碰精品国产| 91在线视频免费91| 欧美在线免费播放| 欧美三级韩国三级日本三斤| youjizz久久| 亚洲午夜视频在线观看| 亚洲激情在线激情| 亚洲影院免费观看| 日韩中文字幕av电影| 亚洲成av人影院| 日本美女一区二区三区视频| 亚洲综合精品久久| 亚洲欧美偷拍另类a∨色屁股| 国产精品女同一区二区三区| 国产精品视频麻豆| 欧美一区日韩一区| 日韩欧美另类在线| 欧美成人性战久久| 国产日本一区二区| 中文字幕在线观看不卡视频| 亚洲精品视频在线观看网站| 亚洲愉拍自拍另类高清精品| 手机精品视频在线观看| 亚洲一区二区三区在线看| 亚洲一区中文在线| 蓝色福利精品导航| 精品一区二区在线看| av资源网一区| 丁香六月久久综合狠狠色| 成人免费精品视频| 在线观看视频91| 欧美xxxx老人做受| 欧美韩国日本综合| 91精品国产综合久久精品app| 91精品国产综合久久国产大片| 精品久久人人做人人爱| 国产精品色婷婷| 亚洲在线视频免费观看| 精品一区二区三区香蕉蜜桃| 成人免费不卡视频| 成人开心网精品视频| 欧美精品日韩精品| 国产女人aaa级久久久级| 亚洲私人影院在线观看| 免费观看日韩av| 免费在线观看精品| 91老司机福利 在线| 精品人在线二区三区| 中文字幕在线观看一区| 狠狠色狠狠色综合系列| 91视频91自| 精品理论电影在线观看| 亚洲精品久久久蜜桃| 国产精品一区免费在线观看| 欧美人动与zoxxxx乱| 国产精品麻豆网站| 综合分类小说区另类春色亚洲小说欧美| 香港成人在线视频| 91小视频在线观看| 久久综合狠狠综合久久综合88| 国产精品久久久久久久久晋中 | 91激情在线视频| 精品久久一二三区| 午夜成人在线视频| 懂色av噜噜一区二区三区av| 日韩欧美一级片| 蜜桃91丨九色丨蝌蚪91桃色| 91黄色免费看| 亚洲精品欧美综合四区| 亚洲第一会所有码转帖| 色综合视频在线观看| 久久众筹精品私拍模特| 丝瓜av网站精品一区二区 | 免费成人小视频| 91在线你懂得| 欧美精品一区二区三区视频| 麻豆精品一区二区综合av| 国产宾馆实践打屁股91| 精品捆绑美女sm三区| 精品亚洲成a人在线观看 | 国产成人免费视频精品含羞草妖精| 日韩一区二区免费在线观看| 午夜视频在线观看一区| 粗大黑人巨茎大战欧美成人| 2023国产精品自拍| 国产一区二区精品久久99| wwww国产精品欧美| 亚洲靠逼com| 国产成人免费视频精品含羞草妖精| 精品剧情v国产在线观看在线| 精品一区二区三区久久久| 日韩欧美不卡在线观看视频| 亚洲最色的网站| 欧美视频一区二区三区四区 | 欧美高清一级片在线| 日韩电影在线一区| 日韩欧美国产午夜精品| 卡一卡二国产精品| 日韩欧美视频一区| 国产激情一区二区三区四区| 亚洲天堂成人在线观看| 91在线观看美女| 欧美一区二区女人| 精品一区二区日韩| 国产精品久久久一本精品 | 精品入口麻豆88视频| 国产成人免费视频网站| 欧美一区二区三区免费| 老司机一区二区| 国产欧美日韩亚州综合| 欧美无砖专区一中文字| 亚洲国产成人tv| 欧美大片在线观看一区二区| 国产91精品露脸国语对白| 1024国产精品| 日本福利一区二区| 久久狠狠亚洲综合| 国产精品久久精品日日| 欧美高清dvd| 激情都市一区二区| 亚洲综合一区二区| 精品国产一区久久| 色欧美片视频在线观看在线视频| 日韩亚洲欧美在线观看| jlzzjlzz欧美大全| 久久国内精品自在自线400部| 国产日韩v精品一区二区| 国产一区久久久| 日日摸夜夜添夜夜添国产精品| 国产日韩欧美精品综合| 欧美性色aⅴ视频一区日韩精品| 日韩福利电影在线观看| 成人欧美一区二区三区白人 | 欧美日韩国产高清一区| www.66久久| 精品一二线国产| 亚洲午夜免费视频| 久久久久久久免费视频了| 99麻豆久久久国产精品免费| 亚洲视频 欧洲视频| ww久久中文字幕| 欧美一级精品在线| 欧美丰满美乳xxx高潮www| 91女厕偷拍女厕偷拍高清| 成人性生交大片免费看中文| 久久99精品国产麻豆不卡| 中文字幕人成不卡一区| 日韩欧美www| 色综合久久88色综合天天| 日韩美女久久久| 中文字幕第一区第二区| 成人av电影在线网| 国产一区二区在线电影| 久久国内精品视频| 狂野欧美性猛交blacked| 亚洲成人先锋电影| 夜夜嗨av一区二区三区中文字幕| 亚洲手机成人高清视频| 亚洲免费观看高清完整版在线 | 免费国产亚洲视频| 日韩精品电影在线观看| 亚洲嫩草精品久久| 日韩精品综合一本久道在线视频| 偷窥国产亚洲免费视频| 91精品国产综合久久国产大片| 色偷偷久久人人79超碰人人澡| 色婷婷久久综合| 国内欧美视频一区二区| 麻豆一区二区三区| 精品中文字幕一区二区小辣椒| 久久精品国产亚洲a| 久久国产麻豆精品| 国内精品久久久久影院薰衣草| 国产精品亚洲а∨天堂免在线| 蜜臀国产一区二区三区在线播放| 亚洲v中文字幕| 美女尤物国产一区|