易码技术论坛

 找回密码
 加入易码
搜索
楼主: yan

[工具] 文书浏览 for TC800

[复制链接]
发表于 2005-4-30 10:37:00 | 显示全部楼层
希望把输入顺序改一下,要是能先输入英文(数字能在英文界面输就更好了)就好了
 楼主| 发表于 2005-4-30 21:28:00 | 显示全部楼层
这是最新的文书浏览 for tc800,是Reader2_18.txt加入新函数所得的。不过去掉了bmp,b16,flm浏览的功能。

 楼主| 发表于 2005-4-30 21:30:00 | 显示全部楼层
这是最新的原代码:

int mode;

long getword(int type)
{char i,key,spell[10],word[20],n[20];
int page,up,g;
long j;
strcpy(n,"01b2n3m4g5h6j7t8y9u");flag:
i=0;page=0;up=0;spell[0]=0;Box(1,66,160,78,1,0);
if(type==3)type=mode;
if(type==0)//英文输入
   {TextOut(2,67,"英",66);mode=type;key=getchar();
    if(key==26){if(type==2)type=0;else type++;goto flag;}//模式切换
    return(key);
   }
else if(type==1)
   {TextOut(2,67,"数",66);mode=type;key=getchar();g=strchr(n,key);//数字输入
    if(key==26){if(type==2)type=0;else type++;goto flag;}//模式切换
    if(isdigit(*g)||iscntrl(key))return(key);
    else if(isdigit(*(g-1)))return(*(g-1));
    else return(0);
   }
TextOut(2,67,"拼",66);mode=type;//拼音输入
for(;;)
   {key=getchar();
    if(key==26){if(type==2)type=0;else type++;goto flag;}//模式切换
    if(!i&&!(key>='a'&&key<='z'))return(key);
    if(up&&key==13)
      {g=0;
       for(;;)
         {Box(52+12*g,66,63+12*g,78,1,2);key=getchar();Box(52+12*g,66,63+12*g,78,1,2);
          if(key==23&&g)g--;
          else if(key==22&&g<8)g++;
          else if(key==27)break;
          else if(key==13)return(word[2*g+1]*256+word[2*g]);
         }
      }
    else if(key==23&&i){i--;spell=0;page=0;up=0;}
    else if(key==21&&page+9<up)page=page+9;
    else if(key==20&&page>9)page=page-9;
    else if(key>='a'&&key<='z'&&i<6){spell[i++]=key;spell=0;page=0;up=0;}
    Box(15,67,159,79,1,0);TextOut(15,67,spell,65);
    j=fwrite(page,spell,word,20);
    if(j!=-1){up=j>>16;TextOut(52,67,word,65);}
   }
}
 楼主| 发表于 2005-4-30 21:42:00 | 显示全部楼层
关于原代码的说明:

把代码加入程序的前面,编译后,再用pacmgr.lav的编辑打开,找到03430084000F3D00190B001915000114B13538,并该为03430084000F3D00190B001915000114D33538。(B1变为D3)

注意数字的变化!!!上面的数字对应的就是j=fwrite(page,spell,word,20);

用getword函数可以取代GetWord函数。
发表于 2005-5-6 19:25:00 | 显示全部楼层
楼主:已经有2_22版了,你就更新一下吧!
 楼主| 发表于 2005-5-6 21:46:00 | 显示全部楼层
有原码,可以自己改嘛。

这是Reader2_22.txt改的。


发表于 2005-5-7 08:39:00 | 显示全部楼层
到底怎么改呀?楼主能不能把Reader2_22.txt的修改过程说详细点。
发表于 2005-5-16 13:00:00 | 显示全部楼层
在电脑上编译时显示第39行出错!
 楼主| 发表于 2005-5-16 18:59:00 | 显示全部楼层
抱歉
应该是:39行改为:else if(key==23&&i){i--;spell=0;page=0;up=0;}
42行改为:else if(key>='a'&&key<='z'&&i<6){spell[i++]=key;spell=0;page=0;up=0;}

发表于 2005-5-17 15:35:00 | 显示全部楼层
还是不行!~
 楼主| 发表于 2005-5-17 16:39:00 | 显示全部楼层
奇怪:我已经把39行的spell=0;改为spell=0;怎么还是spell=0;
39行,正确的是:spell=0;
 楼主| 发表于 2005-5-17 16:41:00 | 显示全部楼层
还是一样!39行的spell=0;改为spell+中括号+i+中括号=0;
发表于 2005-5-18 08:30:00 | 显示全部楼层
第.39行对了,第42行又不对了。
发表于 2005-5-27 21:39:00 | 显示全部楼层
楼主:你还是看看吧!还是不行啊!
发表于 2005-6-7 21:23:00 | 显示全部楼层
能不能加入处理全部书签的功能????
查找功能还是有问题吧,谁能改一改???
 楼主| 发表于 2005-6-7 21:44:00 | 显示全部楼层
第42行和第39行一样:spell=0;改为spell+中括号+i+中括号=0;

有原代码,就可以自己加嘛。我放出原代码的目的是因为新的编译器还没出,不能使用新函数
至于查找功能的加入会破坏lava的跨平台性
发表于 2005-6-7 23:23:00 | 显示全部楼层
………………我先试试
发表于 2005-6-8 02:21:00 | 显示全部楼层
我仔细看了看,不明白。
程序从哪里获得拼音与汉字的对应关系?
 楼主| 发表于 2005-6-8 12:45:00 | 显示全部楼层
是这一句:j=fwrite(page,spell,word,20);
发表于 2005-6-8 13:46:00 | 显示全部楼层
这句又是怎么使“word”里面的数据是符合拼音的汉字?
j=fwrite(page,spell,word,20);写法怪怪的。
我不知道tc800 怎么输汉字,所以猜:这句是利用TC800的lava2解释器里的得到汉字的“接口”,但又没IDE,所以要手动改?
我没有钱啊,800这么便宜的好东东都买不起。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-27 10:48 , Processed in 0.012304 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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