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

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

?? sim2lib.c

?? 一種中文輸入法
?? C
字號:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <windows.h>
#include <tchar.h>

#define MAX_PHRASE_LEN 8
#define MAX_PY_NUM 420
#define MAX_EACH_PY_NUM 41

typedef struct {
	WORD wKey;
	TCHAR szPY[8];
} PINYIN,FAR *LPPINYIN;

PINYIN      aPYTab[26][MAX_EACH_PY_NUM] = {0};

void LoadHZDictionary( LPTSTR lpStr)
{
	TCHAR szPY[20],szHZ[1000];
	static int i=0,j=0,nPre=0;
	WORD wPYHead=1;
	LPPINYIN lpPYTab = (LPPINYIN)aPYTab;

	_stscanf(lpStr,"%s %s",szPY,szHZ);

	
	wPYHead=(WORD)szPY[0] - (WORD)_T('a');
	if(wPYHead != nPre) j=0;
	_tcscpy( (lpPYTab+wPYHead*MAX_EACH_PY_NUM+j)->szPY,szPY);
	(lpPYTab+wPYHead*MAX_EACH_PY_NUM+j)->wKey=i+1;

	nPre=wPYHead;
	i++,j++;
	return;
}

WORD GetSegment(LPTSTR buf)
{
	if(*buf == _T('\0')) return 1; //END_SEGMENT
	else if(*buf == _T('#')) return 2; //COMMENT
	else if( _tcsstr(buf,_T("[PUNCTUATION]")) != NULL ) return 3; 
	else if( _tcsstr(buf,_T("[DICTIONARY]")) != NULL) return 4;
	else return 0;
}

void GetStr(FILE *pf,LPTSTR pbuf)
{
	while( !feof(pf) ) {
		*pbuf = _fgettc(pf);
		if(*pbuf == _T('\n')) break;
		pbuf++;
	}
	*pbuf = _T('\0');
}

void LoadTable()
{
	FILE *stream;
	TCHAR szStr[1000];
	TCHAR szTabFileName[200];
	LPTSTR lpTabFileName = szTabFileName;


	lpTabFileName += GetSystemDirectory(szTabFileName,200);
	if (*(lpTabFileName-1) != _T('\\'))
		*lpTabFileName++ = _T('\\');
	_tcscpy(lpTabFileName,_T("freepy.tab"));

	if( (stream = _tfopen( szTabFileName, "r" )) == NULL ){
		_stprintf(szStr,"%s can not found",szTabFileName);
		MessageBox(NULL,szStr,"init",MB_OK);
		exit(1);
	}
	
	while( !feof( stream )) {
		GetStr(stream,szStr);

		switch( GetSegment(szStr)) {
		case 1: //END_SEGMENT
			break;

		case 2: //COMMENT
			break;

		case 3: //PUNCTUATION
			if( feof( stream ) ) goto my_exit;
			GetStr(stream,szStr);
			while(GetSegment(szStr) != 1) {
				if( GetSegment(szStr) != 2){
					//LoadPunct( szStr );
				}
				if( feof( stream ) ) goto my_exit;
				GetStr(stream,szStr);
			}
			break;

		case 4: //DICTIONARY
			if( feof( stream ) ) goto my_exit;
			GetStr(stream,szStr);
			while(GetSegment(szStr) != 1) {
				if( GetSegment(szStr) != 2){
					LoadHZDictionary( szStr );
				}
				if( feof( stream ) ) goto my_exit;
				GetStr(stream,szStr);
			}
			break;

		default:
			break;
		}
	}
my_exit:
	fclose(stream);
	return;
}

WORD String2Array(LPTSTR lpBuf,LPTSTR lpStrArr,WORD wMaxArrSize)
{
	int i;
	WORD cursor=0,count=0,wBufLen;
	
	wBufLen = strlen(lpBuf);
	
	for (i=0;i<wBufLen;i++){
		if(*(lpBuf+i) == _T(' ') || *(lpBuf+i) == _T('\t')) {
			if(i!=0 && *(lpBuf+i-1)!=_T(' ') && *(lpBuf+i-1)!=_T('\t') ){
				_tcsncpy(lpStrArr+count*wMaxArrSize,lpBuf+cursor,i-cursor);
				*(lpStrArr+count*wMaxArrSize+i-cursor)=_T('\0');
				count++;
			}
			cursor=i+1;
		}
		if(i == wBufLen-1 && *(lpBuf+i)!=_T(' ') && *(lpBuf+i)!=_T('	') ){
			_tcsncpy(lpStrArr+count*wMaxArrSize,lpBuf+cursor,i-cursor+1);
			*(lpStrArr+count*wMaxArrSize+i-cursor+1)=_T('\0');
			count++;
		}
	}
	return count;
}

int sim2lib(LPTSTR lpInName,LPTSTR lpOutName)
{
	FILE *stream,*out;
	int i,j;
	TCHAR szStr[250];
	WORD wLen,wHead,flag;
	BYTE abKey[MAX_PHRASE_LEN+2],bLen;
	WORD awKey[MAX_PHRASE_LEN];
	WORD wCount;
	TCHAR szStrArr[MAX_PHRASE_LEN+4][2*MAX_PHRASE_LEN+2];
	
	if( (stream = _tfopen( lpInName, _T("r") )) == NULL ){
		fprintf(stderr,"%s cant open.\n",lpInName);
		exit(1);
	}
	
	if( (out = _tfopen( lpOutName, _T("wb") )) == NULL ){
		fprintf(stderr,"%s cant open.\n",lpOutName);
		exit(1);
	}

	while( !feof( stream )) {
		if( _fgetts(szStr,1000,stream) != NULL){
			*(szStr+_tcslen(szStr)-1)=_T('\0');
			wCount=String2Array(szStr,(LPTSTR)szStrArr,2*MAX_PHRASE_LEN+2);
			wLen=_tcslen(szStrArr[0])/2;
			if(wLen != wCount-1 || wLen > MAX_PHRASE_LEN){
				printf("%s\n",szStr);
				continue;
			}
			for(i=1;i<wCount;i++){
				wHead=(int)szStrArr[i][0] - _T('a');
				flag=1;
				if(wHead < 0 || wHead > 25){
					printf("%s\n",szStr);
					flag=0;
					break;
				}
				flag=0;
				for(j=0;aPYTab[wHead][j].wKey;j++){
					if(!_tcscmp(aPYTab[wHead][j].szPY,szStrArr[i])){
						awKey[i-1]=aPYTab[wHead][j].wKey;
						flag=1;
						break;
					}
				}
				if(!flag) break;
			}
			if(!flag){
				printf("%s\n",szStr);
				continue;
			}
			for(i=0;i<wLen;i++)
				abKey[i+1] = awKey[i] & 0xff;
			
			abKey[0]=_T('\0');
			for(i=0;i<wLen;i++)
				abKey[0] |= (awKey[i] & 0x0100) >> (8-i);
			
			bLen=(BYTE)wLen;
			
			fwrite(&bLen,1,1,out);
			fwrite(abKey,1,wLen+1,out);
			fwrite(szStr,1,wLen*2,out);
		}
	}
	
	fclose(stream);
	fclose(out);
	return (0);
}

void main(int argc,char **argv)
{
  if(argc != 3) {
    fprintf(stderr,"usage: %s <input_name> <output_name>\n",argv[0]);
    return;
  }
  LoadTable();
  sim2lib(argv[1],argv[2]);
  return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜av电影一区| 在线免费精品视频| 91伊人久久大香线蕉| 日韩一级黄色片| 玉足女爽爽91| www.欧美精品一二区| 精品国产精品一区二区夜夜嗨| 国产精品色哟哟网站| 久久国产精品无码网站| 欧美私人免费视频| 亚洲男人的天堂在线aⅴ视频| 国内精品在线播放| 欧美一级国产精品| 亚洲一区二区三区四区在线观看| 国产91综合一区在线观看| 欧美日韩成人一区| 亚洲成人av福利| 欧美视频第二页| 亚洲精品中文在线观看| 波多野结衣一区二区三区| 欧美成人精品3d动漫h| 日本不卡在线视频| 欧美日韩免费不卡视频一区二区三区| 国产精品国产精品国产专区不蜜| 国产高清久久久久| 久久久99久久| 国产做a爰片久久毛片| 3atv在线一区二区三区| 亚洲五码中文字幕| 欧美日韩精品欧美日韩精品| 亚洲精品日韩专区silk| 91久久免费观看| 亚洲在线视频网站| 欧美日本国产视频| 精品亚洲成av人在线观看| 日韩精品自拍偷拍| 国产一区二区三区精品欧美日韩一区二区三区 | 精品视频在线免费| 午夜伦欧美伦电影理论片| 欧美性感一区二区三区| 亚洲成人免费在线| 欧美一级片在线| 国产在线乱码一区二区三区| 久久免费偷拍视频| www.欧美.com| 丝袜美腿高跟呻吟高潮一区| 日韩一区二区三区四区 | 成人精品视频一区| 亚洲美女在线国产| 欧美精品一级二级三级| 久久精品99国产精品| 欧美精品一区二区久久婷婷| 国产精品1024| 亚洲精品视频在线观看网站| 欧美精品日韩一本| 韩国女主播成人在线观看| 日本一区二区在线不卡| 色女孩综合影院| 久久国产精品99久久人人澡| 中文字幕精品一区二区精品绿巨人| 91视频观看视频| 免费黄网站欧美| 亚洲视频在线一区二区| 51精品国自产在线| 成人免费va视频| 天堂一区二区在线| 国产精品福利电影一区二区三区四区| 日本韩国精品在线| 国产中文字幕精品| 懂色av中文一区二区三区| 亚洲美女精品一区| 久久综合中文字幕| 欧美色欧美亚洲另类二区| 国产精品一区二区视频| 亚洲综合色噜噜狠狠| 久久久精品黄色| 欧美日韩国产首页| 成人黄色网址在线观看| 美国毛片一区二区| 亚洲高清视频的网址| 国产精品久久久久久久久免费相片| 欧美日韩免费在线视频| av不卡一区二区三区| 捆绑调教美女网站视频一区| 亚洲美女淫视频| 中文字幕欧美三区| 精品粉嫩aⅴ一区二区三区四区| 91小视频免费看| 国产美女在线精品| 蜜桃视频免费观看一区| 亚洲影院理伦片| 亚洲乱码中文字幕综合| 日本一区二区三区四区| 精品国产亚洲在线| 日韩欧美国产三级电影视频| 欧美性色欧美a在线播放| av一区二区久久| 国产丶欧美丶日本不卡视频| 久久av老司机精品网站导航| 性感美女极品91精品| 亚洲综合一区在线| 成人免费在线播放视频| 国产精品久久精品日日| 欧美国产日韩一二三区| 国产亚洲短视频| 久久综合网色—综合色88| 日韩欧美在线一区二区三区| 欧美老肥妇做.爰bbww视频| 色狠狠av一区二区三区| 91久久精品一区二区二区| 91丨九色丨蝌蚪富婆spa| 不卡的av中国片| 99久久综合狠狠综合久久| 成人午夜在线播放| yourporn久久国产精品| 91免费视频观看| 欧美天堂亚洲电影院在线播放| 欧美在线视频不卡| 制服丝袜中文字幕一区| 3d动漫精品啪啪1区2区免费 | 99久久免费精品高清特色大片| 国产成人免费在线观看| 欧美精品三级日韩久久| 日韩午夜激情免费电影| 欧美成人午夜电影| 国产欧美日韩精品在线| 国产精品免费视频一区| 亚洲精品国产精品乱码不99| 亚洲综合无码一区二区| 日韩精品欧美精品| 美女一区二区在线观看| 国产乱子伦视频一区二区三区| 国产精品亚洲综合一区在线观看| 成人国产电影网| 欧美性色综合网| 精品国产免费久久| 国产精品视频第一区| 亚洲小说春色综合另类电影| 奇米色777欧美一区二区| 国产精品一区二区果冻传媒| 91一区二区在线观看| 正在播放亚洲一区| 国产亚洲欧美在线| 亚洲激情综合网| 九色|91porny| 91麻豆自制传媒国产之光| 在线电影院国产精品| 中文字幕电影一区| 日韩综合小视频| 国产成人免费视频精品含羞草妖精| 91蜜桃传媒精品久久久一区二区| 555www色欧美视频| 国产精品白丝在线| 蜜桃久久精品一区二区| 99精品久久只有精品| 欧美大片一区二区三区| 亚洲精品亚洲人成人网| 国产美女在线精品| 欧美日韩免费一区二区三区视频| 久久亚洲欧美国产精品乐播| 亚洲国产日韩av| 成人夜色视频网站在线观看| 在线电影一区二区三区| 国产精品嫩草影院com| 久久国产免费看| 在线观看免费成人| 中文字幕精品三区| 久久91精品国产91久久小草| 欧美性色aⅴ视频一区日韩精品| 久久久高清一区二区三区| 无码av中文一区二区三区桃花岛| www.99精品| 国产日韩影视精品| 精品一区二区免费视频| 欧美美女直播网站| 亚洲美女少妇撒尿| 不卡一区在线观看| 日日骚欧美日韩| 欧美综合一区二区| 综合分类小说区另类春色亚洲小说欧美 | 亚洲美女在线一区| 懂色av中文字幕一区二区三区 | 国产精品一二三区| 日韩女优视频免费观看| 亚洲成人av福利| 欧美亚洲综合另类| 亚洲精品综合在线| 91美女片黄在线观看91美女| 国产精品无人区| 成人精品视频一区二区三区尤物| 久久久高清一区二区三区| 国产一区91精品张津瑜| 亚洲精品一区二区三区影院| 日本色综合中文字幕| 欧美肥妇bbw| 男男成人高潮片免费网站| 9191精品国产综合久久久久久| 亚洲动漫第一页| 欧美高清视频www夜色资源网| 午夜成人免费视频|