zoukankan      html  css  js  c++  java
  • 分享自己动手弄的基于Rime的新世纪五笔输入法码表

    实验室新搞了一台iMac,没有支持新世纪的码表的中文输入法啊。搜索半天大家推荐用Rime(鼠须管来挂接新世纪码表。不知道还有没有其它支持外挂码表的Mac版输入法,暂时只有搞这个了。看了一下别人已经做出来的新世纪码表,怕跟自己常用的不习惯,所以准备在他们的配置文件基础上,用自己的码表文件代替。可以极点、小小等用的码表是先码后字的方式,即:
    a 工 戈
    aa 工 式
    aaa 工
    aaaa 工 恭恭敬敬
    aaad 工期

    而Rime用的是先字后码的方式:
    工    a
    戈    a
    工    aa
    式    aa
    工    aaa
    工    aaaa

    所以只能自己转一下了,大致说一下过程:
    1.将你现在用的码表打开,随便用支持大文件的文件编辑器就好,我用的Emeditor,然后复制[DATA]以下的实际编码到excel粘贴。
    2.在excel里粘贴后一行是一个单元格,用“分列”功能,以空格把原一列的数据分成多列,第1列为编码,后面的可能有多列的汉字。
    3.新建一个sheet,默认名字是sheet2,前面粘贴的一般为sheet1,如果你的excel默认启动就是3个sheet的话,就不用了。
    4.在excel里按alt+f11,打开vba编辑器,粘贴如下代码:

     1 Sub GetRimeDict()
     2     Dim i As Long, j As Long, n As Long
     3     Dim sht As Worksheet
     4     Set sht = Sheets("sheet1")
     5     Dim sht1 As Worksheet
     6     Set sht1 = Sheets("sheet2")
     7     With sht
     8         i = 1
     9         n = 1
    10         Do While Len(.Cells(i, 1).Value) > 0
    11             j = 2
    12             Do While Len(.Cells(i, j).Value) > 0
    13                 sht1.Cells(n, 1) = .Cells(i, j)
    14                 sht1.Cells(n, 2) = .Cells(i, 1)
    15                 j = j + 1
    16                 n = n + 1
    17             Loop
    18             i = i + 1
    19         Loop
    20       
    21     End With
    22 
    23 End Sub
    24 
    25 Sub GenTxt()
    26     Dim i As Long
    27         Dim sht1 As Worksheet
    28     Set sht1 = Sheets("sheet2")
    29     Dim sql As String
    30     sql = ""
    31     i = 1
    32     Do While Len(sht1.Cells(i, 1).Value) > 0
    33         sql = sql & sht1.Cells(i, 1) & Chr(9) & sht1.Cells(i, 2) & Chr(10)
    34         i = i + 1
    35     Loop
    36    
    37     SaveFile sql, "c:xsj_rime.txt"
    38 End Sub
    39 
    40 Sub SaveFile(sql As String, fileName As String)
    41 '--------------------------------------------------------------
    42 '功    能:保存语句,若已存在文件则直接追加,若文件不存在在先新建.
    43 '作    者:erqie
    44 '制作日期:2009-08-24
    45 '修订日期:
    46 'ForReading 1 以只读方式打开文件。 不能写这个文件。
    47 'ForWriting 2 以写方式打开文件
    48 'ForAppending 8 打开文件并从文件末尾开始写。
    49 '--------------------------------------------------------------
    50     Dim fso, MyFile
    51     Set fso = CreateObject("Scripting.FileSystemObject")
    52     If (fso.fileExists(fileName)) Then
    53         '参数8表示在文件末尾追加写入
    54         Set MyFile = fso.OpenTextFile(fileName, 8)
    55         'fso.Delete (fileName)
    56        
    57     Else
    58         'ture表示覆盖创建
    59         Set MyFile = fso.CreateTextFile(fileName, ture)
    60     End If
    61     MyFile.writeline (sql)
    62     MyFile.Close
    63     Set fso = Nothing
    64     Set MyFile = Nothing
    65 End Sub

    然后把光标定位在GetRimeDict函数里,按f5运行后,在sheet2里生成新的码表。
    然后把光标定位在GenTxt函数里运行,后会在C盘下生成转换后的码表。此后就可以复制到Rime的码表文件里替换原来的汉字编码了。

    下载码表及配置

  • 相关阅读:
    java基础知识(一)- 数据类型
    Java基础知识-去重
    java基础知识-冒泡排序
    Java排序方法sort的使用详解
    Java面试题-字符串操作
    Map.Entry遍历Map
    Java中String的用法
    Java循环控制语句-switch
    API文档打开显示'已取消到该网页的导航'的解决方法
    CentOS6.5 安装snort
  • 原文地址:https://www.cnblogs.com/erqie/p/4438593.html
Copyright © 2011-2022 走看看