======================================================================
§嘸蝦米輸入法技術手冊
======================================================================
<目錄>
一、嘸蝦米輸入法 5.0 版參考檔 liubig5.tab 規格使用說明
二、如何在應用程式中切換到嘸蝦米輸入法
======================================================================
一、嘸蝦米輸入法 5.0 版參考檔 liubig5.tab 規格使用說明
======================================================================
<1.1> 宗旨
由於使用者不斷的支持與愛護,嘸蝦米輸入法已廣為在社會的各行各業
、各階層中被大家使用。為了感謝使用者的支持,我們在以後嘸蝦米輸入法
的版本中,放入了嘸蝦米輸入法的參考檔,這是一個編碼過的對照表,用以
對應嘸蝦米輸入的字根和其對應的中文字。我們將此參考檔的格式公開,以
方便任何廠商或個人在不同的環境、不同的機器、不同的作業系統、或是不
同的應用程式中撰寫其介面程式以驅動嘸蝦米輸入法。要注意的是,本參考
檔的著作權屬於嘸蝦米輸入法的創作人,而使用權則屬於合法持有本參考檔
之使用者。合法持有者,除備用存檔及配合所使用環境之需要而修改,限於
該持有者自行使用外,其他一切權利均予保留。非經著作權利人正式授權,
嚴禁將此參考檔作任何型式之修改、翻拷、流傳、出租、出售、交換或透過
網路和其他一切對外界公佈其內容的行為。
因此,在不同的中文環境下,廠商、軟體公司或是個人皆可依循這個參
考檔的規格,撰寫對於此參考檔的驅動程式,並說明安裝的過程,以提供合
法持有此參考檔的使用者能使用嘸蝦米輸入法。由於我們希望使用者在不一
樣中文環境下使用嘸蝦米輸入法時,有「統一」的輸入習慣與「完全正確」
的字碼,以避免日後因錯誤所造成的不便,因此,當您要發行或流傳此驅動
程式之前,請務必讓嘸蝦米輸入法的創作人劉重次先生做「測試」,如果一
切無誤的話,本公司將會給予此產品「支援嘸蝦米輸入法 5.0版參考檔」的
「認證」。
=====================================================================
<1.2> 字根按鍵:嘸蝦米輸入法所使用的按鍵有
A - Z 等 26 個字母鍵,用來輸入中文。
,. ' [ ] 等 5 個符號鍵,用來輸入符號。
Space 空白鍵,當有輸入字根時,用來下達組字命令。
=====================================================================
<1.3> 使用習慣:
1.在中文環境下,通常以 Ctrl-Shift或 Ctrl-Alt-9切換到嘸蝦米輸入法。
不過一般應用程式也可依自己的習慣,比如說以滑鼠或下拉式功能表等其
他方式切換。當切換至嘸蝦米輸入法的狀態時,請務必顯示其為「嘸蝦米
」,請勿以其他名稱替代。
2.在嘸蝦米輸入法的輸入狀態時,除了上述的 32個鍵,其他的輸入鍵一概
不處理,這些不處理的輸入鍵的反應即與「英數」的狀態下的反應一樣。
3.組合鍵如 Shift-、Ctrl-、Alt-、Ctrl-Alt-、也一概不處理。
4.當沒有輸入字根時 (即輸入法的 Input Buffer是空的時 ), Space鍵、
Backspace鍵與 ESC鍵也不處理。
5.當一有字根輸入時,嘸蝦米輸入法即根據目前已輸入的字根,立即從
liubig5.tab這個 table中尋找對應的中文字,如果找不到對應的字或對
應的字只有一個的話,狀態列只顯示目前已輸入的字根。如果對應的字不
只一個的話,狀態列除了顯示目前已輸入的字根外,也要以這樣的方式顯
示候選字:
□ 1□ 2□ 3□ 4□...
比如說,當字根輸入 RWP且尚未按空白鍵時,RWP找到的對應字有三個,
即「范」、「萍」、「菠」,此時,狀態列應出現:
RWP 范 1萍 2菠
接下來,如果按「空白鍵」,即輸出「范」字,如果按「 1鍵」即輸出「
萍」字,如果按「 2鍵」即輸出「菠」字,如果按其他字根鍵或
Backspace鍵,則再繼續依目前已輸入的字根組字。
6.已有字根輸入時,按了 Backspace鍵,則消去最後一個輸入的字根。記住
,不要忘記「立即組字」。
7.已有字根輸入時,按了 ESC鍵,則消去所有輸入的字根,即清除 Input
Buffer,回到原始狀態。
8.已有字根輸入時,如果按 Space鍵即下達輸出命令。此時程式便輸出第一
個找出的對應字,如果沒有找到對應的字,即清除 Input Buffer與狀態
列,嗶一聲並顯示「無此字」。
9.選字是輸入速度的瓶頸,因為「數目字鍵」不像 26英文字母好按,因此
嘸蝦米以加「輔選字根」V鍵來輔助,直接得到在 Table中第二順位的候
選字,舉例說:如「膏」字和「敲」在嘸蝦米輸入法的字根皆是 LONU,
當使用者鍵入 LONU並按 Space後,由於在 Table中排列的順序,必輸出
第一候選字「膏」,而第二候選字「敲」必須選字。在有重覆字的情況下
,嘸蝦米是以字根加V直接輸出第二順位的候選字;上述的情況如使用者
直接鍵入 LONUV鍵並按 Space組字後,則直接得到「敲」字。嘸蝦米的字
根最多只有四個,只有在這種情況下會輸入第五個字根 V。又如「已」和
「己」字都是 FLL,但我們可以直接輸入 FLLV以得到「己」字。在程式
中,如何做到這個功能呢?
1. 當使用者輸入字根,按了 Space 鍵欲輸出字時。
2. 如果結果是沒有對應字的話,先檢查最後一個字根是不是V。
3. 如果不是V的話,嗶一聲並顯示「無此字」。
4. 如果是V的話,請把這最後一個V字根拿掉,再到 table 中重新尋
找對應字。
5. 如果沒有找到對應字、或只找到一個對應字的話,嗶一聲並顯示「
無此字」。
6. 如果找到兩個或以上的對應字時,請直接輸出第二個對應字。
10其他尚未提及的輸入習慣或形式,與其他一般現行的輸入法無異,詳細的
例子,可參考行易有限公司出版之嘸蝦米輸入法 5.0 版在倚天中文系統
與 Windows 3.1中文版操作的情形。
=====================================================================
<1.4> 字根排列與編碼:
┌───┬───┬───┐ ┌───┬───┬───┐
│字 根│十進位│二進位│ │字 根│十進位│二進位│
├───┼───┼───┤ ├───┼───┼───┤
│SPACE │ 0 │00000 │ │ P │ 16 │10000 │
│ A │ 1 │00001 │ │ Q │ 17 │10001 │
│ B │ 2 │00010 │ │ R │ 18 │10010 │
│ C │ 3 │00011 │ │ S │ 19 │10011 │
│ D │ 4 │00100 │ │ T │ 20 │10100 │
│ E │ 5 │00101 │ │ U │ 21 │10101 │
│ F │ 6 │00110 │ │ V │ 22 │10110 │
│ G │ 7 │00111 │ │ W │ 23 │10111 │
│ H │ 8 │01000 │ │ X │ 24 │11000 │
│ I │ 9 │01001 │ │ Y │ 25 │11001 │
│ J │ 10 │01010 │ │ Z │ 26 │11010 │
│ K │ 11 │01011 │ │ , │ 27 │11011 │
│ L │ 12 │01100 │ │ . │ 28 │11100 │
│ M │ 13 │01101 │ │ ' │ 29 │11101 │
│ N │ 14 │01110 │ │ [ │ 30 │11110 │
│ O │ 15 │01111 │ │ ] │ 31 │11111 │
└───┴───┴───┘ └───┴───┴───┘
=====================================================================
<1.5> 參考檔格式與字的編碼:
參考檔最上面的 2048+2 bytes 為一個 Index table,各別指到前兩碼
字根對應在 Data table的開始位置。每一個位置為一個 2 bytes 無號整數
(unsigned integer, Intel格式 ),一共有 32*32個,即 1024個,加上最
後一個為 Data table的結束位置。
┌──────┬────┬────┬ ┬────┬────┐
│SPACE-SPACE │SPACE-A │SPACE-B │....│SPACE-[ │SPACE-] │32*2
├──────┼────┼────┼ ┼────┼────┤
│A - SPACE │A - A │A - B │....│A - [ │A - ] │32*2
├──────┼────┼────┼ ┼────┼────┤
│B - SPACE │B - A │B - B │....│B - [ │B - ] │32*2
├──────┼────┼────┼ ┼────┼────┤
│C - SPACE │C - A │C - B │....│C - [ │C - ] │32*2
├──────┼────┼────┼ ┼────┼────┤
.......................................................... .
├──────┼────┼────┼ ┼────┼────┤
│[ - SPACE │[ - A │[ - B │....│[ - [ │[ - ] │32*2
├──────┼────┼────┼ ┼────┼────┤
│] - SPACE │] - A │] - B │....│] - ] │] - ] │32*2
├──────┼────┴────┴ ┴────┴────┘
│結束位置 END│ 1*2
└──────┘
接下來即為 Data table,以 3 bytes為一個字的單位,字數目多少並
不固定,不過您可以從 Index table 的最後一個 integer 除以 3 算出。
位置 0 ┌──────────┐
│ │ 3 bytes = 24 bits
位置 3 ├──────────┤
│ │ 3 bytes
位置 6 ├──────────┤
│ │ 3 bytes
位置 9 ├──────────┤
│ │ 3 bytes
位置 12 ├──────────┤
│
无虾米输入法7.0 /win7/标准版可用
5星 · 超过95%的资源 需积分: 42 119 浏览量
2014-01-23
10:11:05
上传
评论 1
收藏 36.54MB RAR 举报
superlz2002
- 粉丝: 4
- 资源: 8
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈