本站提供最佳黑喵传奇源码服务,欢迎转载和分享。

【单机软件源码】【黑桃8特权源码】【ce7.0源码】rtrim源码

2024-11-19 00:48:34 来源:黑客源码样本 分类:探索

1.叙述使用计算机(击键)输入中文的原理?

rtrim源码

叙述使用计算机(击键)输入中文的原理?

       首先你要对Basic语言有一定了解才可看明白的.

       中文输入法的实现过程:

        首先,说一下ASCII码与CHR$字符的关系,我们都清楚从0到是文本控制符,到都是英文、数字及

       一些常用字符。如:a$ = CHR$() ,单机软件源码对应的 a$ = "A"。而中文字符的ASCII范围是从到。中文字是由两个字

       符组成的,所以一个中文字是由两个从到的组合字符构成。如 a$ = CHR$() + CHR$()。对应变量

       a$ = "我"。相反如果想知道一个中文字是由那两个ASCII码组成,我们可以将它拆成两个字符,用ASC()函数就可

       知道它的黑桃8特权源码相对ASCII码值。如:

        PRINT ASC( LEFT$(a$ ,1));

        PRINT ASC(RIGHT$(a$ ,1))

       结果显示:

        现在明白了中文字的ASCII码组合,我们先来做最简单的“区位”输入法。区位输入的码表纯粹是ASCII的

       顺序排列。所以我们只要将区位前两位数+,后两位数也+。再将两个数加起来。例如:

        QW =

        ZWF = QW \ + '区位前两位数+

        ZWB = QW MOD + '后两位数+

        A$ = CHR$(ZWF) + CHR$(ZWB) '两个数加起来形成区位表码对应的ce7.0源码字符

        我们看到区位输入法的实现就是如此鸡毛蒜皮的事件。现在我们再来实现“拼音”输入法。如果大家执行以下

       代码:

        FOR F = TO

        FOR B= TO

        PRINT CHR$(F) + CHR$(B) ;

        NEXT B

        NEXT F

       稍认真看看规律就不难发现它的ASCII码值是按拼音来排列的。除了声调,拼音的重码是非常多的。这样我们就无须每

       个字都作拼音码表检索。反之是用拼音来检索所有重码的字就更简单了。如:输入“wo”,钉钉 开放 源码即从(,)开始就

       是拼音“wo”所有重码的字符。其它也依次类推。“拼音”输入法虽然没区位简单,但也是不难实现的。用上述的方法

       来实现“拼音”输入是最简捷的方法,但存在一个缺点:就是种草之家网站源码它只能输入日常常用的字,即只是从到之间,算一算

       大概有个常用字。还有多个不常用字的排序方法与之不同,后多字是以笔画方式排序的。如果要想实现

       一个完整的,就是能输入所有常用及不常用汉字的“拼音”输入法,那么就要专门建立一个“拼音”输入码表检索文件。

       在这里就不多谈了。如果有兴趣自己试试。。。。

        简单的“拼音”输入法我们都实现了,但“拼音”的输入速度就以它的重码有着莫大的关系。所以我们现在来实现

       最常用的、效率高、重码率低、一个我们中国人“王永民”先生设计的输入法“五笔”输入法。这个不用说了,会打

       字的一般都认识“五笔”。打五笔我们就打得多了,但“五笔”输入法是如何实现呢?不清楚的QB朋友不用抓头皮,

       看下去你就会理直气壮的说:“原来就这么简单!!!”

        “五笔”不同于以上“拼音”与“区位”输入法,它在ASCII码表里是没有一个排列规律的,ASCII码这个国际通

       用的码表排列,我们是不能随便就更改。既然更改ASCII码表的排列是不可能的事情,我们只好自己做个“五笔”编

       码专用的码表好了!!。请看以下源代码程序:

        WBX$ = " ggtt=五笔 lwty=输入 ifc=法 yijg=就是 vftc=那么 tuuj=简单 "

        WBX$ = WBX$ + " q=我 bn=也 go=来 yaya=试试 rhf=看 drgo=原来 r=的 pugm=实现 " '定义一个基本的码表

        CLS

        PRINT WBX$

        PRINT

        PRINT "请你输入:"

        PRINT "原来五笔输入法的实现就是那么的简单我也来试试看"

        LOCATE , 5

        RecInputChr$ = " " '初始化显示编码及定义光标位置

        PRINT "五笔编码: "

        DO

        IK$ = INKEY$ '读入键盘的ASCII码值

        IF IK$ = CHR$() THEN EXIT DO '按ESC键退出

        IF IK$ = CHR$() THEN '按Enter键重置编码

        InputChr$ = ""

        ELSEIF IK$ = CHR$(8) THEN '按BackSpace键后退

        IF InputChr$ <> "" THEN InputChr$ = LEFT$(InputChr$, LEN(InputChr$) - 1)

        ELSEIF IK$ <> "" AND IK$ <> CHR$() THEN '如果键入的不是空格键而且键盘有键按下时编码字符被键入新编码

        InputChr$ = InputChr$ + IK$

        END IF

        IF IK$ = CHR$() OR LEN(InputChr$) = 4 THEN '如果按了空格键或够4码即执行码表检索

        II$ = " " + RTRIM$(InputChr$) + "="

        ST = INSTR(1, WBX$, II$)

        IF ST > 0 THEN

        ST = ST + LEN(InputChr$) + 2

        EN = INSTR(ST, WBX$, " ")

        IF EN = 0 THEN EN = LEN(WBX$)

        ZW$ = MID$(WBX$, ST, EN - ST) '检索到的编码字符

        TXT$ = TXT$ + ZW$ '输入栏字符被输入编码的汉字

        LOCATE 6, 1: PRINT TXT$ '显示输入的内容

        END IF

        InputChr$ = "" '编码字符被重置

        END IF

        IF InputChr$ <> RecInputChr$ THEN '如果当前编码与上次编码有改变即刷新

        LOCATE ,

        PRINT InputChr$ + " " '显示编码字符

        LOCATE 6, LEN(TXT$) + 1, 1 '定义输入栏光标位置

        RecInputChr$ = InputChr$ '给上次编码赋最新编码内容值

        END IF

        LOOP

【本文网址:http://581.net.cn/news/01e372496274.html 欢迎转载】

copyright © 2016 powered by 皮皮网   sitemap