- 注册时间
- 2005-1-21
- 最后登录
- 1970-1-1
|
发表于 2005-7-16 12:13:00
|
显示全部楼层
System.PY2GB原型 long System.PY2GB(int id,addr str,addr buf); 功能 根据拼音取汉字 说明 str指向拼音字符串
id为汉字的序号(从0开始)
buf为存储符合条件的汉字的缓冲区
返回值为-1表示没有符合条件的汉字,否则:
返回值的低字表示符合条件的汉字数(一次最多取9个)
返回值的高字表示该拼音下的所有汉字数 举例 #define LEFT_KEY 0x17
#define UP_KEY 0x14
#define DOWN_KEY 0x15
void main()
{
char i,c,pinyin[10];
char s[20];
int id,sum;
long t;
pinyin[0]=0;
i=0;
id=0;
sum=0;
ClearScreen();
TextOut(2,67,"拼",1);
Block(1,66,13,78,2);
Refresh();
for (;;) {
c=getchar();
if (c==LEFT_KEY) {
if (i) {
pinyin[--i]=0;
id=0;
sum=0;
}
} else if (c==DOWN_KEY) {
if (id+9<sum) id=id+9;
} else if (c==UP_KEY) {
if (id>9) id=id-9;
else id=0;
} else if (c>='a' && c<='z') {
if (i<6) {
pinyin[i++]=c;
pinyin=0;
id=0;
sum=0;
}
}
Block(15,67,159,79,0);
TextOut(15,67,pinyin,1);
t=System.PY2GB(id,pinyin,s);
if (t!=-1) {
sum=t>>16;
TextOut(52,67,s,1);
}
Refresh();
}
}
|
|