易码技术论坛

 找回密码
 加入易码
搜索
查看: 99828|回复: 7

[求助]莫名其妙的错误

[复制链接]
发表于 2006-1-1 01:28:00 | 显示全部楼层

  1. int Cindex[20]=" 〓⒈Ⅻ! ̄ぁんァヶΑωАяāêㄅㄩ─╋";
复制代码

整形数组不能这样初始化。
 楼主| 发表于 2006-1-1 01:53:00 | 显示全部楼层
那怎么办?
发表于 2006-1-1 02:43:00 | 显示全部楼层

  1. int Cindex[20]={1,2,3,4,……};
复制代码

发表于 2006-1-3 12:40:00 | 显示全部楼层
代码很乱啊,应该规范点书写

你如果要用LavaX3.1的GetWord(),我可以传给你一份,我刚刚写好的,十分好用,就是还没时间加上标点符号的输入,快考试了的

是我为LavaX3.1写的,使用了PY2GB函数,TC800当然也就能用了。用法和LAVA1.0的GetWord()函数一样,

不过如果你想要提高自己的编程水平,那还是自己做吧,呵呵
 楼主| 发表于 2006-1-14 00:02:00 | 显示全部楼层
谢谢,我是高三学生,只能用wqx写代码,tc800不能换行,所以代码很乱,我会努力的。

另,我一改好了代码,支持中英文符号输入要的就下载吧,因为我是近视眼,看不清屏幕上的字的数,所以有数字,高度大了一些,要小高度的就下第二个吧(第一个160*20,第二个160*16)


 楼主| 发表于 2006-1-14 00:05:00 | 显示全部楼层
怎么上传啊?只好粘代码了

以下是大版本的

char Esign[65]=
". , ; - / ? ! $ % ( ) : ` '   < > { } [ ] # ~ @ ^ & * + = _ |   ";
char Csign[85]="。,、:;?!…‘’〔〕《》“”〖〗【】#~●※○◎□⊙+-×÷№☆★$¥§℃‰.—";
int Cindex[20]={0xa1a1,0xfea1,0xb1a2,0xfca2,0xa1a3,0xfea3,0xa1a4,0xf3a4,0xa1a5,0xf6a5,0xa1a6,0xd8a6,0xa1a7,0xf1a7,0xa1a8,0xbaa8,0xc5a8,0xe9a8,0xa4a9,0xefa9};
char num[80]={
0x08,0x18,0x38,0x18,0x18,0x18,0x18,0x3c,0x3c,0x42,0xc3,0xc3,0x06,0x3c,0x60,0xff,0x3c,0xc3,0xc3,0x1c,0x03,0xc3,0xc3,0x3c,0x04,0x0c,0x1c,0x2c,0x6c,0xff,0x0c,0x1e,0xc0,0xff,0xc0,0xfc,0x03,0xc3,0xc3,0x3c,0x3c,0x42,0xc1,0xdc,0xe2,0xc3,0x42,0x3c,0x7f,0xc6,0xc4,0x08,0x18,0x18,0x18,0x18,0x3c,0xc3,0xc3,0x7e,0xc3,0xc3,0xc3,0x3c,0x3c,0x42,0xc3,0x43,0x3f,0x83,0x42,0x3c,0x3c,0x42,0xc7,0xdb,0xe3,0xe3,0x42,0x3c};

char mode,isup;
int getword(char type)
{
char py[7],key,i;
int list[10],ta,tb,now;
long ret;
memset(py,0,7);
now=0;ret=0;
Box(13,60,160,80,1,0);
if(type!=2)mode=type;
while(1)
{
if(!mode)
{
Box(0,62,50,77,0,1);Line(0,62,0,77,0);
TextOut(1,64,"英",0x42);
while(1)
{
if(isup)
TextOut(13,64,"[大写]",0x41);
else
TextOut(13,64,"[小写]",0x41);
key=getchar();
if(key=='-')
{
now=0;
TextOut(13,64,"[符号]",0x41);
while(1)
{
memcpy(list,Esign+now*18,19);
Box(52,60,160,80,1,0);
TextOut(52,60,list,0x41);
for(i=0;i<strlen(list)/2;i++)
WriteBlock(52+i*12,72,8,8,0x41,num+i*8);
key=getchar();
if(key==20||key==23)
{
if(now>0)now--;
}
else
if(key==21||key==22||key=='-')
{
if(now<3)now++;
}
else
if(isdigit(key))
{
if(key!='0'&&(now!=3||key<'6'))
return list[key-'1']&0xff;
}
else
break;
}
if(key==27)key=0;
Box(52,60,160,80,1,0);
}
if(key==18)
isup=(!isup);
else
if(key!=26)
{
if(isup)
key=toupper(key);
return key&0xff;
}
else
{
mode=1;
break;
}
}
}
Box(0,60,160,80,1,0);
Box(0,62,50,77,0,1);
Line(0,62,0,77,0);
TextOut(1,64,"拼",0x42);
while(1)
{
key=getchar();
if(key=='-')
{
now=ta=tb=ret=0;
TextOut(13,64,"[符号]",0x41);
while(1)
{
if(!ret)
memcpy(list,Csign+now*18,19);
else

{
ta=Cindex[(ret-1)*2];
tb=Cindex[(ret-1)*2+1];
for(i=0;i<9&&ta+((now*9+i)<<8)<=tb;i++)
list=ta+((now*9+i)<<8);
list=0;
}
Box(52,60,160,80,1,0);
TextOut(52,60,list,0x41);
for(i=0;i<strlen(list)/2;i++)
WriteBlock(54+i*12,72,8,8,0x41,num+i*8);
key=getchar();
if(key==20||key==23){
if(ret==0)
{
if(now>0)now--;
}
else
{
if(now>0)now--;
else
{
ret--;
if(ret==0)now=4;
else
{
ta=Cindex[(ret-1)*2];
tb=Cindex[(ret-1)*2+1];
now=((tb>>8)-(ta>>8))/9;
}
}
}
}
else
if(key==21||key==22||key=='-')
{
if((ret==0&&now==4)||(ret&&ret<10&&now==((tb>>8)-(ta>>8))/9))
{
ret++;
now=0;
}
else
if(ret<10||now<((tb>>8)-(ta>>8))/9)
now++;
}
else
if(key==14)
{
if(ret<10)
{
ret++;
now=0;
}
}
else
if(key==19)
{
if(ret>0)
{
ret--;
now=0;
}
}
else
if(isdigit(key))
{
if(key!='0'&&((!ret&&(now<4||key<'7'))||(ret&&((ta>>8)+now*9+key-'1'<=(tb>>8)))))
return list[key-'1']&0xffff;
}
else break;
}
if(key==27)key=0;
Box(52,60,160,80,1,0);
}
if(isalpha(key)&&strlen(py)<6)
py[strlen(py)]=key;
else
if(key==20&&now>0)
now--;
else
if(key==21&&now<(ta-1)/9)
now++;
else
if(key==22&&py[0]!=0)
{
now=0;
memset(py,0,7);
}
else
if(key==23&&strlen(py)>0)
{
py[strlen(py)-1]=0;
now=0;
}
else
if(key==26)
{
mode=0;
Box(13,60,160,80,1,0);
break;
}
else
if(isdigit(key))
{
if(key!='0'&&key-'1'<tb)
return list[key-'1']&0xffff;
}
else
if(*py==0)
return key&0xff;
if((ret=System.PY2GB(now*9,py,list))==-1)
*list=0;
ta=ret>>16;
tb=ret;
Box(13,60,160,80,1,0);
Box(13,62,50,77,0,1);
Line(13,63,13,76,0);
TextOut(13,64,py,0x41);
TextOut(52,60,list,0x41);
if(*list!=0)
for(i=0;i<strlen(list)/2;i++)
WriteBlock(54+i*12,72,8,8,0x41,num+i*8);
}
}
}

以下是小版本的

char Esign[65]=
". , ; - / ? ! $ % ( ) : ` '   < > { } [ ] # ~ @ ^ & * + = _ |   ";
char Csign[85]="。,、:;?!…‘’〔〕《》“”〖〗【】#~●※○◎□⊙+-×÷№☆★$¥§℃‰.—";
int Cindex[20]={0xa1a1,0xfea1,0xb1a2,0xfca2,0xa1a3,0xfea3,0xa1a4,0xf3a4,0xa1a5,0xf6a5,0xa1a6,0xd8a6,0xa1a7,0xf1a7,0xa1a8,0xbaa8,0xc5a8,0xe9a8,0xa4a9,0xefa9};
char num[80]={      0x40,0x40,0x40,0x40,0xe0,0x20,0x40,0xe0,0xe0,0x40,0x20,0xe0,0x60,0xa0,0xe0,0x20,0xe0,0x80,0x60,0xc0,0x60,0x80,0xa0,0xe0,0xe0,0x20,0x20,0x20,0xe0,0x40,0xa0,0xe0,0xe0,0xa0,0x20,0xc0};

char mode,isup;
int getword(char type)
{
char py[7],key,i;
int list[10],ta,tb,now;
long ret;
memset(py,0,7);
now=0;ret=0;
Box(0,64,160,80,1,0);
if(type!=2)mode=type;
while(1)
{
if(!mode)
{
Box(0,64,50,79,0,1);Line(0,64,0,79,0);
TextOut(1,66,"英",0x42);
while(1)
{
if(isup)
TextOut(13,66,"[大写]",0x41);
else
TextOut(13,66,"[小写]",0x41);
key=getchar();
if(key=='-')
{
now=0;
TextOut(13,66,"[符号]",0x41);
while(1)
{
memcpy(list,Esign+now*18,19);
Box(52,64,160,79,1,0);
TextOut(52,68,list,0x41);
for(i=0;i<strlen(list)/2;i++)
WriteBlock(52+i*12,64,8,4,0x41,num+i*4);
key=getchar();
if(key==20||key==23)
{
if(now>0)now--;
}
else
if(key==21||key==22||key=='-')
{
if(now<3)now++;
}
else
if(isdigit(key))
{
if(key!='0'&&(now!=3||key<'6'))
return list[key-'1']&0xff;
}
else
break;
}
if(key==27)key=0;
Box(52,63,160,79,1,0);
}
if(key==18)
isup=(!isup);
else
if(key!=26)
{
if(isup)
key=toupper(key);
return key&0xff;
}
else
{
mode=1;
break;
}
}
}
Box(0,64,160,79,1,0);
Box(0,64,50,79,0,1);
Line(0,64,0,79,0);
TextOut(1,66,"拼",0x42);
while(1)
{
key=getchar();
if(key=='-')
{
now=ta=tb=ret=0;
TextOut(13,66,"[符号]",0x41);
while(1)
{
if(!ret)
memcpy(list,Csign+now*18,19);
else

{
ta=Cindex[(ret-1)*2];
tb=Cindex[(ret-1)*2+1];
for(i=0;i<9&&ta+((now*9+i)<<8)<=tb;i++)
list=ta+((now*9+i)<<8);
list=0;
}
Box(52,64,160,80,1,0);
TextOut(52,67,list,0x41);
for(i=0;i<strlen(list)/2;i++)
WriteBlock(54+i*12,64,8,4,0x41,num+i*4);
key=getchar();
if(key==20||key==23){
if(ret==0)
{
if(now>0)now--;
}
else
{
if(now>0)now--;
else
{
ret--;
if(ret==0)now=4;
else
{
ta=Cindex[(ret-1)*2];
tb=Cindex[(ret-1)*2+1];
now=((tb>>8)-(ta>>8))/9;
}
}
}
}
else
if(key==21||key==22||key=='-')
{
if((ret==0&&now==4)||(ret&&ret<10&&now==((tb>>8)-(ta>>8))/9))
{
ret++;
now=0;
}
else
if(ret<10||now<((tb>>8)-(ta>>8))/9)
now++;
}
else
if(key==14)
{
if(ret<10)
{
ret++;
now=0;
}
}
else
if(key==19)
{
if(ret>0)
{
ret--;
now=0;
}
}
else
if(isdigit(key))
{
if(key!='0'&&((!ret&&(now<4||key<'7'))||(ret&&((ta>>8)+now*9+key-'1'<=(tb>>8)))))
return list[key-'1']&0xffff;
}
else break;
}
if(key==27)key=0;
Box(52,60,160,80,1,0);
}
if(isalpha(key)&&strlen(py)<6)
py[strlen(py)]=key;
else
if(key==20&&now>0)
now--;
else
if(key==21&&now<(ta-1)/9)
now++;
else
if(key==22&&py[0]!=0)
{
now=0;
memset(py,0,7);
}
else
if(key==23&&strlen(py)>0)
{
py[strlen(py)-1]=0;
now=0;
}
else
if(key==26)
{
mode=0;
Box(13,64,160,80,1,0);
break;
}
else
if(isdigit(key))
{
if(key!='0'&&key-'1'<tb)
return list[key-'1']&0xffff;
}
else
if(*py==0)
return key&0xff;
if((ret=System.PY2GB(now*9,py,list))==-1)
*list=0;
ta=ret>>16;
tb=ret;
Box(13,64,160,79,1,0);
Box(13,64,50,79,0,1);
Line(13,64,13,79,0);
TextOut(13,66,py,0x41);
TextOut(52,68,list,0x41);
if(*list!=0)
for(i=0;i<strlen(list)/2;i++)
WriteBlock(54+i*12,64,8,4,0x41,num+i*4);
}
}
}


 楼主| 发表于 2006-1-14 00:06:00 | 显示全部楼层
其实大部分是一样的…………
 楼主| 发表于 2006-1-1 00:00:43 | 显示全部楼层 |阅读模式
这是我在tc800上写的一个getword,但在文曲星上编译通过却不能运行(表现为一运行就跳出来,此时再选择lav程序则出差,但系统按键无问题)。在电脑上编译则显示第“Csign”行有问题,先是下标问题,改后该行又有语法问题……真不明白,希望大家看看(特别是lee)在此先谢谢大家了。[upload=txt]viewFile.asp?ID=4898[/upload]
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-8-24 15:30 , Processed in 0.012601 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表