查找字库

Author: 辽宁 张 强 Date: 1993-07-16

        现在通用的2.13E字库,共计87区,每区94个汉字或图形符号。首先应在我们的头脑中形成一个从左上角到右下角一个字盘,认定字盘的横行为区,列为位,对每一个字符或汉字,区和位固定了,这个字符也相应的确定下来,这就是区位码。例如:16区第一位置,即1601是汉字“啊”字,“啊”字是字库中第一个汉字。在本字库中,从16区到87区排列着汉字,1区至13区分别存放各种符号、数字编号、英、日、俄语字母和上标下标变量等。
        计算机内字库打印和浏览程序,由三个部分组成:(1)屏幕选择菜单部分,从20句到110句;(2)浏览字库部分,从120句到250句;(3)打印字库部分从260句到380句。在本程序中所采用的变量:(1)“TT”是选择控制符;(2)“HH”和“KK”是打印时所控制的从“HH”区开始打印,打印到“KK”区结束;(3)“Q”控制着打印和浏览区号;(4)“W”控制着打印和浏览的位号。在打印和浏览执行过程中,区号和位号形成区位码,在FOR语句的支持下完成连续的输出任务。
        需要说明的两点:(1)在用区位码调用字符或符号时,若区号或位号小于10时,则需要用0占位,例如6区第4位,用0604码输出“△”符号;(2)本程序输出时,我只列出1~40位号,其第二、三行输出的相应位号需自行计算得到,例如:“今”字,是在29区81列,即2981就是“今”字。
        10  REM  计算机机内字库打印和浏览应用程序
        20  CLS:SCREEN  1:LOCATE  1,8:PRINT"欢迎您使用本程序"
        30  TT=0
        40  LOCATE  3,7:PRINT"1----浏览"
        50  LOCATE  4,7:PRINT  "2----打印"
        60  LOCATE  5,7:PRINT  "3----退出"
        70  LOCATE  7,7:INPUT  "请选择1----3";TT
        80  IF  TT=3  GOTO  390
        90  IF  TT=2  THEN  LOCATE  8,7:INPUT"您从第几区开始打印";
        HH:LOCATE  9,6:INPUT"打印到第几区";KK:SCREEN  2:GOTO  260
        100  IF  KK>87  THEN  KK=87
        110  IF  TT=1  THEN  DD$=B$:HH=1:KK=87:SCREEN2
        120  CLS
        130  FOR  Q=1  TO  87
        140  PRINT
        150  PRINT  TAB(40)Q;"区汉字"
        160  FOR  T=1  TO  40
        170  PRINT  CHR$(&HA0+11)+CHR$(&HA0+T);
        180  NEXT  T
        190  PRINT
        200  FOR  W=1  TO  94
        210  PRINT  CHR$(&HAO+Q)+CHR$(&HA0+W);
        220  IF  W=40OR  W=80 THEN  PRINT
        230  NEXT  W
        240  NEXT  Q
        250  GOTO  20
        260  FOR  Q=HH  TO  KK
        270  LPRINT  TAB(40)Q;"区汉字"
        280  FOR  T=1  TO  40
        290  LPRINTCHR$(&HA0+11)+CHR$(HA0+T);
        300  NEXT  T
        310  LPRINT
        320  FOR  W=1  TO  94
        330  LPRIN  TCHR$(&HA0+Q)+CHR$(&HA0+W);
        340  IF  W=40  OR  W=80  THE  NLPRINT
        350  NEXT  W
        360  KLPRIN""
        370  NEXT  Q
        380  GOTO  20
        390  SCREEN2:END