frmDataEnv.frm
上传用户:hyb6888
上传日期:2016-01-24
资源大小:5186k
文件大小:25k
源码类别:

输入法编程

开发平台:

Visual C++

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  3. Begin VB.Form form1 
  4.    AutoRedraw      =   -1  'True
  5.    ClientHeight    =   7125
  6.    ClientLeft      =   165
  7.    ClientTop       =   855
  8.    ClientWidth     =   9555
  9.    DrawMode        =   6  'Mask Pen Not
  10.    FillStyle       =   0  'Solid
  11.    LinkTopic       =   "Form1"
  12.    PaletteMode     =   1  'UseZOrder
  13.    ScaleHeight     =   7125
  14.    ScaleWidth      =   9555
  15.    StartUpPosition =   3  '窗口缺省
  16.    Begin VB.Frame Frame5 
  17.       Caption         =   "生成编辑文件"
  18.       Height          =   615
  19.       Left            =   4095
  20.       TabIndex        =   22
  21.       Top             =   0
  22.       Width           =   1755
  23.       Begin VB.TextBox outcodefile 
  24.          Height          =   360
  25.          Left            =   90
  26.          TabIndex        =   23
  27.          Top             =   180
  28.          Width           =   1545
  29.       End
  30.    End
  31.    Begin VB.Frame Frame4 
  32.       Caption         =   "扩展库源码"
  33.       Height          =   615
  34.       Left            =   2070
  35.       TabIndex        =   20
  36.       Top             =   0
  37.       Width           =   1935
  38.       Begin VB.ComboBox Exdend_code 
  39.          BeginProperty Font 
  40.             Name            =   "宋体"
  41.             Size            =   12
  42.             Charset         =   134
  43.             Weight          =   400
  44.             Underline       =   0   'False
  45.             Italic          =   0   'False
  46.             Strikethrough   =   0   'False
  47.          EndProperty
  48.          Height          =   360
  49.          ItemData        =   "frmDataEnv.frx":0000
  50.          Left            =   90
  51.          List            =   "frmDataEnv.frx":0002
  52.          OLEDropMode     =   1  'Manual
  53.          TabIndex        =   21
  54.          Top             =   180
  55.          Width           =   1665
  56.       End
  57.    End
  58.    Begin VB.Frame Frame3 
  59.       Caption         =   "基本库源码"
  60.       Height          =   615
  61.       Left            =   45
  62.       TabIndex        =   18
  63.       Top             =   0
  64.       Width           =   1935
  65.       Begin VB.ComboBox base_code 
  66.          BeginProperty Font 
  67.             Name            =   "宋体"
  68.             Size            =   12
  69.             Charset         =   134
  70.             Weight          =   400
  71.             Underline       =   0   'False
  72.             Italic          =   0   'False
  73.             Strikethrough   =   0   'False
  74.          EndProperty
  75.          Height          =   360
  76.          ItemData        =   "frmDataEnv.frx":0004
  77.          Left            =   90
  78.          List            =   "frmDataEnv.frx":0006
  79.          OLEDropMode     =   1  'Manual
  80.          TabIndex        =   19
  81.          Top             =   180
  82.          Width           =   1665
  83.       End
  84.    End
  85.    Begin VB.Frame Frame2 
  86.       Caption         =   "根据输入查找"
  87.       Height          =   615
  88.       Left            =   5940
  89.       TabIndex        =   11
  90.       Top             =   0
  91.       Width           =   3480
  92.       Begin VB.TextBox Text1 
  93.          Height          =   315
  94.          Left            =   2430
  95.          TabIndex        =   14
  96.          Top             =   240
  97.          Width           =   975
  98.       End
  99.       Begin VB.TextBox Text2 
  100.          Height          =   315
  101.          Left            =   1350
  102.          TabIndex        =   13
  103.          Top             =   240
  104.          Width           =   645
  105.       End
  106.       Begin VB.TextBox Text3 
  107.          Height          =   315
  108.          Left            =   405
  109.          TabIndex        =   12
  110.          Top             =   240
  111.          Width           =   555
  112.       End
  113.       Begin VB.Label Label2 
  114.          Caption         =   "编码"
  115.          Height          =   225
  116.          Left            =   990
  117.          TabIndex        =   17
  118.          Top             =   285
  119.          Width           =   495
  120.       End
  121.       Begin VB.Label Label4 
  122.          Caption         =   "汉字"
  123.          Height          =   225
  124.          Left            =   2025
  125.          TabIndex        =   16
  126.          Top             =   270
  127.          Width           =   375
  128.       End
  129.       Begin VB.Label Label5 
  130.          Caption         =   "序号"
  131.          Height          =   225
  132.          Left            =   45
  133.          TabIndex        =   15
  134.          Top             =   300
  135.          Width           =   495
  136.       End
  137.    End
  138.    Begin VB.TextBox Text6 
  139.       Height          =   270
  140.       Left            =   120
  141.       TabIndex        =   4
  142.       Text            =   "Text6"
  143.       Top             =   5280
  144.       Visible         =   0   'False
  145.       Width           =   975
  146.    End
  147.    Begin VB.PictureBox Picture1 
  148.       BackColor       =   &H00C0C0FF&
  149.       BorderStyle     =   0  'None
  150.       Height          =   495
  151.       Left            =   0
  152.       ScaleHeight     =   495
  153.       ScaleWidth      =   11295
  154.       TabIndex        =   1
  155.       Top             =   5760
  156.       Width           =   11295
  157.       Begin VB.Frame Frame1 
  158.          Height          =   495
  159.          Left            =   2760
  160.          TabIndex        =   5
  161.          Top             =   -45
  162.          Width           =   4695
  163.          Begin VB.TextBox Text4 
  164.             Height          =   315
  165.             Left            =   1725
  166.             TabIndex        =   7
  167.             Top             =   150
  168.             Width           =   1095
  169.          End
  170.          Begin VB.TextBox Text5 
  171.             Height          =   315
  172.             Left            =   3675
  173.             TabIndex        =   6
  174.             Top             =   150
  175.             Width           =   885
  176.          End
  177.          Begin VB.Label Label8 
  178.             Caption         =   "五笔反查"
  179.             Height          =   225
  180.             Left            =   150
  181.             TabIndex        =   10
  182.             Top             =   210
  183.             Width           =   825
  184.          End
  185.          Begin VB.Label Label6 
  186.             Caption         =   "生成编码"
  187.             Height          =   225
  188.             Left            =   2865
  189.             TabIndex        =   9
  190.             Top             =   210
  191.             Width           =   795
  192.          End
  193.          Begin VB.Label Label7 
  194.             Caption         =   "汉字串"
  195.             Height          =   225
  196.             Left            =   1125
  197.             TabIndex        =   8
  198.             Top             =   210
  199.             Width           =   705
  200.          End
  201.       End
  202.       Begin VB.Label Label1 
  203.          Caption         =   "状态:"
  204.          Height          =   225
  205.          Left            =   120
  206.          TabIndex        =   3
  207.          Top             =   120
  208.          Width           =   645
  209.       End
  210.       Begin VB.Label Label3 
  211.          Height          =   225
  212.          Left            =   750
  213.          TabIndex        =   2
  214.          Top             =   120
  215.          Width           =   1935
  216.       End
  217.    End
  218.    Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1 
  219.       Height          =   3525
  220.       Left            =   45
  221.       TabIndex        =   0
  222.       Top             =   720
  223.       Width           =   6105
  224.       _ExtentX        =   10769
  225.       _ExtentY        =   6218
  226.       _Version        =   393216
  227.       ScrollTrack     =   -1  'True
  228.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  229.          Name            =   "宋体"
  230.          Size            =   12
  231.          Charset         =   134
  232.          Weight          =   400
  233.          Underline       =   0   'False
  234.          Italic          =   0   'False
  235.          Strikethrough   =   0   'False
  236.       EndProperty
  237.    End
  238.    Begin VB.Menu file 
  239.       Caption         =   "文件"
  240.       Begin VB.Menu Save 
  241.          Caption         =   "保存"
  242.          Shortcut        =   ^S
  243.       End
  244.       Begin VB.Menu MyExit 
  245.          Caption         =   "退出"
  246.          Shortcut        =   ^E
  247.       End
  248.    End
  249.    Begin VB.Menu Opting 
  250.       Caption         =   "操作"
  251.       Begin VB.Menu TestChssCode 
  252.          Caption         =   "代码正确性测定"
  253.       End
  254.       Begin VB.Menu code 
  255.          Caption         =   "编码"
  256.       End
  257.       Begin VB.Menu codetest 
  258.          Caption         =   "编码并测试"
  259.       End
  260.       Begin VB.Menu onlytest 
  261.          Caption         =   "仅测试库"
  262.       End
  263.       Begin VB.Menu onlytestEx 
  264.          Caption         =   "仅测试库Ex"
  265.       End
  266.       Begin VB.Menu outcode 
  267.          Caption         =   "反编码"
  268.          Shortcut        =   ^D
  269.       End
  270.       Begin VB.Menu outcodeMain 
  271.          Caption         =   "反编主码"
  272.       End
  273.    End
  274.    Begin VB.Menu tool 
  275.       Caption         =   "工具"
  276.       Begin VB.Menu TranAD 
  277.          Caption         =   "格式转换"
  278.       End
  279.    End
  280.    Begin VB.Menu help 
  281.       Caption         =   "帮助"
  282.       Begin VB.Menu about 
  283.          Caption         =   "关于"
  284.          Shortcut        =   ^H
  285.       End
  286.    End
  287. End
  288. Attribute VB_Name = "form1"
  289. Attribute VB_GlobalNameSpace = False
  290. Attribute VB_Creatable = False
  291. Attribute VB_PredeclaredId = True
  292. Attribute VB_Exposed = False
  293. Dim dic_lib As String
  294. Dim cur_lib As String
  295. Private Sub about_Click()
  296.     MsgBox "    极速五笔是由王华设计开发," & Chr(13) _
  297.          & "有任何问题请发电子邮件与本人联系。" & Chr(13) _
  298.          & "E-MAIL:whln669@sohu.com. 谢谢!", , "极速五笔"
  299. End Sub
  300. Private Sub code_Click()
  301.    Save_Click
  302. End Sub
  303. Private Sub codetest_Click()
  304. If (HaveSelect() = 0) Then
  305.     MSFlexGrid1.GridColor = vbBlue
  306.     DictSave
  307.     If (test_file() = 1) Then
  308.         If (creat(App.path & "source" & base_code.Text, App.path & "userSource.txt", App.path & "source_Ex" & Exdend_code.Text, App.path & "lib" & outcodefile.Text, 64, 27, 4)) Then
  309.            MsgBox "生成词典失败"
  310.         Else
  311.            SaveRegLong HKEY_CURRENT_USER, "Software\jsime", "jsime", "1"
  312.         End If
  313.         Label3.Caption = "已生成新词典"
  314.     End If
  315. End If
  316. End Sub
  317. Private Sub Save_Click()
  318. If (HaveSelect() = 0) Then
  319.     MSFlexGrid1.GridColor = vbBlue
  320.     DictSave
  321.     If (test_file() = 1) Then
  322.         If (creatNotest(App.path & "source" & base_code.Text, App.path & "userSource.txt", App.path & "source_Ex" & Exdend_code.Text, App.path & "lib" & outcodefile.Text, 64, 27, 4)) Then
  323.            MsgBox "生成词典失败"
  324.         Else
  325.            SaveRegLong HKEY_CURRENT_USER, "Software\jsime", "jsime", "1"
  326.         End If
  327.         Label3.Caption = "已生成新词典"
  328.     End If
  329. End If
  330. End Sub
  331. Function test_file() As Integer
  332. Dim ret
  333.     ret = 1
  334.     If (base_code.Text = "") Then
  335.        MsgBox "基本源码库不存在 "
  336.        ret = 0
  337.     End If
  338.     If (Exdend_code.Text = "" And ret = 1) Then
  339.        MsgBox "扩展源码库不存在 "
  340.        ret = 0
  341.     End If
  342.     If (outcodefile.Text = "" And ret = 1) Then
  343.        MsgBox "必须指定输入库的名称 "
  344.        ret = 0
  345.     End If
  346.     test_file = ret
  347. End Function
  348. Private Sub myReadfile()
  349. Dim MyString As String, MyString1 As String
  350. path = App.path & "userSource.txt"
  351. Me.Caption = path
  352. Open path For Input As #1    ' 打开输入文件
  353. Dim j As Long
  354. j = 1
  355. Do While Not EOF(1)    ' 循环至文件尾。
  356.     Line Input #1, MyString  ' 将数据读入变量。
  357.     If (Len(MyString) > 2) Then
  358.         
  359.         If (MSFlexGrid1.Rows - 1 < j) Then
  360.            MSFlexGrid1.AddItem j - 1
  361.         End If
  362.         
  363.         MyString1 = MyCutStr(MyString, " ")
  364.         MSFlexGrid1.TextMatrix(j, 0) = j
  365.         MSFlexGrid1.TextMatrix(j, 1) = MyString1
  366.         MSFlexGrid1.TextMatrix(j, 2) = MyString
  367.         j = j + 1
  368.         
  369.     End If
  370.     ' 在立即窗口中显示数据。
  371. Loop
  372. Close #1    ' 关闭文件。
  373. End Sub
  374. Private Sub Form_Unload(Cancel As Integer)
  375. '   Save_Click
  376. End Sub
  377. Private Sub MSFlexGrid1_DblClick()
  378.    Dim r
  379.     r = MSFlexGrid1.Row
  380.     Form2.SetCurR (r)
  381.     Form2.Text1.Text = MSFlexGrid1.TextMatrix(r, 1)
  382.     Form2.Text2.Text = MSFlexGrid1.TextMatrix(r, 2)
  383.     Form2.Show 1, Me
  384. End Sub
  385. Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
  386. Dim f, ss As String, tt As String
  387.     If KeyCode = 16 Or KeyCode = 17 Or KeyCode = 18 Or KeyCode = 92 Or KeyCode = 27 Then '
  388.        
  389.     Else
  390.       If (KeyCode = 46) Then
  391.            MSFlexGrid1.Text = ""
  392.            Label3 = "已修改,注意保存!"
  393.       End If
  394.       ActSelectProsce KeyCode
  395.       
  396.     End If
  397. End Sub
  398. Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
  399. Dim f
  400. Dim ss As String, tt As String
  401. MSFlexGrid1.GridColor = vbRed
  402. Label3 = "已修改,注意保存!"
  403. 'KeyPross = 0表示按键未处理过
  404. cc = HaveSelect()
  405. If (HaveSelect() = 0 And KeyPross = 0) Then
  406.     If (MSFlexGrid1.Col = 1 And KeyAscii > 0) Then '分为两大部分
  407.        If KeyAscii = 32 Then
  408.          Label3.Caption = "不能在编码栏内输入空格"
  409.          Label3.ForeColor = vbRed
  410.        Else
  411.            
  412.             full = Chr(KeyAscii)
  413.             tt = MSFlexGrid1.Text
  414.             
  415.             If KeyAscii = 8 Then  '
  416.               If (Len(tt) >= 1) Then
  417.                  tt = Mid(tt, 1, Len(tt) - 1)
  418.               End If
  419.               full = ""
  420.             End If
  421.            MSFlexGrid1.Text = tt & full
  422.        End If
  423.     End If
  424.     
  425.     
  426.     If (MSFlexGrid1.Col = 2) Then
  427.         full = CodeToChinese(KeyAscii)
  428.          tt = MSFlexGrid1.Text
  429.          
  430.          If KeyAscii = 8 Then  '
  431.            If (Len(tt) >= 1) Then
  432.               tt = Mid(tt, 1, Len(tt) - 1)
  433.            End If
  434.            full = ""
  435.          End If
  436.         MSFlexGrid1.Text = tt & full
  437.      
  438.      End If
  439. End If
  440. End Sub
  441. Private Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  442.    Dim tt As Long, i As Long, r As Long
  443.    Dim myMenu As cPopupMenu
  444.    Dim modify As Integer
  445.    modify = 0
  446.     If (Button = 2) Then
  447.         Set myMenu = New cPopupMenu
  448.         
  449.         r = MSFlexGrid1.RowSel - MSFlexGrid1.Row
  450.         
  451.         If (MSFlexGrid1.MouseRow = 0) Then
  452.             myMenu.Popup "排序", "----"
  453.             If (myMenu.SelID = 1) Then
  454.                
  455.                MSFlexGrid1.Sort = 1
  456.                modify = 1
  457.             End If
  458.             If (myMenu.SelID = 2) Then
  459.             
  460.             End If
  461.         End If
  462.         
  463.         If (MSFlexGrid1.MouseCol = 0) Then
  464.             myMenu.Popup "插入" & r + 1 & "行", "删除" & r + 1 & "行"
  465.             If (myMenu.SelID = 1) Then
  466.                 For i = 0 To r
  467.                  MSFlexGrid1.AddItem "插入新行", MSFlexGrid1.Row
  468.                 Next
  469.             End If
  470.             If (myMenu.SelID = 2) Then
  471.                 For i = 0 To r
  472.                   MSFlexGrid1.RemoveItem (MSFlexGrid1.Row)
  473.                 Next
  474.             End If
  475.         
  476.         End If
  477.         
  478.         If (MSFlexGrid1.MouseRow <> 0 And MSFlexGrid1.MouseCol <> 0) Then
  479.             
  480.             myMenu.Popup "交换行", "-"
  481.             If (myMenu.SelID = 1) Then
  482.                 ChanceSelct
  483.             End If
  484.         End If
  485.         
  486.     Else
  487.         
  488.         If (MSFlexGrid1.Col = 1) Then '输入法状态管理
  489.             tt = GetKeyboardLayout(0)
  490.             If (tt < 0) Then
  491.                 hCurKBDLayout = tt
  492.             End If
  493.             tt = LoadKeyboardLayout("00000804", KLF_REORDER)
  494.             ActivateKeyboardLayout tt, 1
  495.         Else
  496.            tt = GetKeyboardLayout(0)
  497.            If (tt < 0) Then
  498.                hCurKBDLayout = tt
  499.            End If
  500.            ActivateKeyboardLayout hCurKBDLayout, 1
  501.         End If
  502.     End If
  503.     
  504. If (modify = 1) Then
  505.     MSFlexGrid1.GridColor = vbRed
  506.     Label3 = "已修改,注意保存!"
  507. End If
  508. End Sub
  509. Private Sub Form_Load()
  510.     Dim i As Long
  511.     Dim ss1 As String, ss2 As String
  512.     Dim tt As Integer, path As String
  513.     
  514.     '读注册表,有新词,就说明此次启动是为了增加词,
  515.     '不必进行其他处理
  516.        If (Command = "ShowMessageBox") Then
  517.           CheckAdd (1)
  518.        Else
  519.           CheckAdd (0)
  520.        End If
  521.        
  522.     '////////////////////////////////////////////
  523.         
  524.        path = App.path & "userSource.txt"
  525.        Open path For Append As #1      ' 打开输入文件。
  526.        
  527.        If (Len(ss1) > 0 And Len(ss1) > 0) Then
  528.             Print #1, ss1 & " " & ss2
  529.        End If
  530.        Close #1    ' 关闭文件。
  531.     
  532.     
  533.     
  534.     MSFlexGrid1.Cols = 4
  535.     MSFlexGrid1.Width = form1.Width
  536.     For i = 1 To 32
  537.        MSFlexGrid1.AddItem "", i
  538.     Next
  539.     
  540.     '设定固定行 第一行
  541.     MSFlexGrid1.FixedRows = 1
  542.     
  543.     MSFlexGrid1.ColAlignment(1) = 1
  544.     MSFlexGrid1.ColAlignment(2) = 2
  545.     
  546.     MSFlexGrid1.TextMatrix(0, 0) = "序号"
  547.     MSFlexGrid1.TextMatrix(0, 1) = "编码"
  548.     MSFlexGrid1.TextMatrix(0, 2) = "汉字"
  549.     MSFlexGrid1.TextMatrix(0, 3) = "测定"
  550.     myReadfile
  551.     '************************************************************************************
  552.     listfile App.path & "source", base_code
  553.     If (base_code.ListCount > 0) Then
  554.         base_code.ListIndex = 0
  555.     End If
  556.     listfile App.path & "source_Ex", Exdend_code
  557.     If (Exdend_code.ListCount > 0) Then
  558.         Exdend_code.ListIndex = 0
  559.     End If
  560. End Sub
  561. Function listfile(pathname As String, objcombo As ComboBox)
  562.     Dim fso, f, f1, fc, renf, i
  563.     Set fso = CreateObject("Scripting.FileSystemObject")
  564.     Set f = fso.GetFolder(pathname)
  565.     Set fc = f.Files
  566.     i = fc.Count
  567.     For Each f1 In fc '遍历文件
  568.         objcombo.AddItem (f1.Name)
  569.     Next
  570. End Function
  571. Private Sub Form_Resize()
  572.   Dim i, firstW, endW, rev, engle
  573.   
  574.   StateHight = 1200
  575.   firstW = 700
  576.   endW = 700
  577.   engle = 200
  578.   rev = 700
  579.   
  580.   
  581.   MSFlexGrid1.Width = form1.Width - engle
  582.   MSFlexGrid1.Height = form1.Height - StateHight - MSFlexGrid1.Top
  583.    
  584.    
  585.    '第一行的宽
  586.    MSFlexGrid1.ColWidth(0) = firstW
  587.    
  588.    '同间各行的宽
  589.    i = 1
  590.    While i < MSFlexGrid1.Cols - 1
  591.       '减第一列宽、最后一列宽、留边,保留空白区
  592.       If (form1.Width - firstW - endW - engle - rev > 0) Then
  593.           MSFlexGrid1.ColWidth(i) = (form1.Width - firstW - endW - engle - rev) / 2
  594.       End If
  595.       i = i + 1
  596.    Wend
  597.    
  598.    '最后一行的宽
  599.    MSFlexGrid1.ColWidth(MSFlexGrid1.Cols - 1) = endW
  600.    
  601.    Picture1.Top = form1.Height - StateHight
  602.    Picture1.Width = form1.Width
  603. End Sub
  604. Private Sub MyExit_Click()
  605.    End
  606. End Sub
  607. Private Sub onlytest_Click()
  608. Dim cc As String, RetStr As String * MAX_PATH
  609.     cc = InputBox("请输入测试编码:", "编码库测试", "aa")
  610.     If cc = "" Then
  611.         MsgBox "你没有输入英文测试码?"
  612.     Else
  613.         dic_lib = ReadRegString(HKEY_CURRENT_USER, "Software\jsime", "cur_dic_lib")
  614.         dd = myfindfile(App.path & "lib" & dic_lib)
  615.         If (Len(dd) = 0) Then
  616.             MsgBox "文件没找到" & App.path & "lib" & dic_lib
  617.         Else
  618.             dd = TestLib(App.path & "lib" & dic_lib, 64, 27, 4, cc, 0, RetStr)
  619.             If (dd = 0) Then
  620.                  MsgBox "VB查询失败"
  621.             Else
  622.                  MsgBox "查询成功:" & cc & "=" & RetStr
  623.             End If
  624.         End If
  625.         
  626.     End If
  627.     
  628.     
  629. End Sub
  630. Private Sub onlytestEx_Click()
  631.     dic_lib = ReadRegString(HKEY_CURRENT_USER, "Software\jsime", "cur_dic_lib")
  632.     dd = myfindfile(App.path & "lib" & dic_lib)
  633.     If (Len(dd) = 0) Then
  634.         MsgBox "文件没找到" & App.path & "lib" & dic_lib
  635.     Else
  636.        TestLibEx App.path & "lib" & dic_lib, 64, 27, 4
  637.     End If
  638. End Sub
  639. Private Sub outcode_Click()
  640.  
  641.     dic_lib = ReadRegString(HKEY_CURRENT_USER, "Software\jsime", "cur_dic_lib")
  642.     dd = myfindfile(App.path & "lib" & dic_lib)
  643.     If (Len(dd) = 0) Then
  644.         MsgBox "文件没找到" & App.path & "lib" & dic_lib
  645.     Else
  646.         outsource App.path & "lib" & dic_lib, App.path & "reCode.txt", 64, 27, 4
  647.         MsgBox "reCode.txt全部反编码完成"
  648.     End If
  649. End Sub
  650. Private Sub outcodeMain_Click()
  651.     dic_lib = ReadRegString(HKEY_CURRENT_USER, "Software\jsime", "cur_dic_lib")
  652.     dd = myfindfile(App.path & "lib" & dic_lib)
  653.     If (Len(dd) = 0) Then
  654.         MsgBox "文件没找到" & App.path & "lib" & dic_lib
  655.     Else
  656.         OutsourceOne App.path & "lib" & dic_lib, App.path & "MainCode.txt", 64, 27, 4
  657.         MsgBox "MainCode.txt主码反编完成"
  658.     End If
  659. End Sub
  660. Private Sub TestChssCode_Click()
  661.     Dim ss As String, temss As String, temss2 As String
  662.     Dim r
  663.     
  664.     r = form1.MSFlexGrid1.Rows - 1
  665.     For i = 1 To r
  666.         ss = "               "
  667.         temss = form1.MSFlexGrid1.TextMatrix(i, 2)
  668.         temss2 = form1.MSFlexGrid1.TextMatrix(i, 1)
  669.         
  670.         ChissToCode App.path & "MainCode.txt", temss, ss
  671.         'MsgBox ss
  672.         Text6.Text = LCase(Trim(ss))
  673.         ss = Trim(Text6.Text)
  674.         
  675.         temss2 = LCase(Trim(temss2))
  676.         If (ss = temss2) Then
  677.            MSFlexGrid1.TextMatrix(i, 3) = ""
  678.         Else
  679.            If (ss = "") Then
  680.                MSFlexGrid1.TextMatrix(i, 3) = "????"
  681.            Else
  682.                MSFlexGrid1.TextMatrix(i, 3) = "****"
  683.            End If
  684.         End If
  685.         
  686.     Next
  687. End Sub
  688. Private Sub Text1_Change()
  689.    Find "", Text1.Text, ""
  690. End Sub
  691. Private Sub Text2_Change()
  692.     
  693.     Find Text2.Text, "", ""
  694. End Sub
  695. '///////////////////////////////////////////////////////////
  696. '函数部分
  697. '///////////////////////////////////////////////////////////
  698. '交换执行部分的行
  699. Private Sub ChanceSelct()
  700. Dim i As Long, r As Long, c As Long
  701. Dim dr As Long, dc As Long
  702. Dim tr As Long, tc As Long, t As Long
  703. cc = HaveSelect()
  704. If (cc = 1 Or cc = 3) Then
  705.    dr = MSFlexGrid1.Row
  706.    dc = MSFlexGrid1.Col
  707.   
  708.    r = MSFlexGrid1.RowSel - dr + 1
  709.    c = MSFlexGrid1.ColSel - dc + 1
  710.    tr = MSFlexGrid1.RowSel
  711.    tc = MSFlexGrid1.ColSel
  712.    t = r - 1
  713.    
  714.    For i = 0 To t - 1
  715.       MSFlexGrid1.RowPosition(tr) = dr + i
  716.    Next
  717. End If
  718. End Sub
  719. Private Sub DictSave()
  720. Dim ss1 As String, ss2 As String
  721. Dim tt As Integer, path As String
  722.    path = App.path & "userSource.txt"
  723.    Me.Caption = path
  724.     Open path For Output As #1      ' 打开输入文件。
  725.     tt = MSFlexGrid1.Rows
  726.     For i = 1 To tt - 1
  727.         ss1 = MSFlexGrid1.TextMatrix(i, 1)
  728.         ss2 = MSFlexGrid1.TextMatrix(i, 2)
  729.         If (Len(ss1) > 0 And Len(ss1) > 0) Then
  730.             Print #1, ss1 & " " & ss2
  731.         End If
  732.     Next
  733.     Close #1    ' 关闭文件。
  734. Label3.Caption = "已保存"
  735. End Sub
  736. Private Function HaveSelect() As Integer
  737. Dim r, c, sc, sr, dr, dc, ret
  738.    dr = MSFlexGrid1.Row
  739.    dc = MSFlexGrid1.Col
  740.   
  741.    r = MSFlexGrid1.RowSel - dr
  742.    c = MSFlexGrid1.ColSel - dc
  743.    
  744.    ret = 0
  745.    If (c = 0 And r = 0) Then '判断是否选择多于一个单元格
  746.      
  747.    Else
  748.       If (r <> 0) Then
  749.          ret = 1
  750.       End If
  751.       If (c <> 0) Then
  752.          ret = 2
  753.       End If
  754.       If (c <> 0 And r <> 0) Then
  755.          ret = 3
  756.       End If
  757.    End If
  758.    
  759. HaveSelect = ret
  760. End Function
  761.    
  762.    
  763. '反回为1代表按键已处于过,0表示没有处理
  764. Private Function ActSelectProsce(KeyAscii As Integer)
  765. Dim i, j, r, c, sc, sr, full, dr, dc
  766. Dim sel, ret
  767.    ret = 0
  768.    
  769. If KeyAscii = 16 Or KeyAscii = 17 Or KeyAscii = 18 Or KeyAscii = 92 Then '
  770.     ActSelectProsce = ret
  771.     Exit Function
  772. End If
  773.    
  774.    dr = MSFlexGrid1.Row
  775.    dc = MSFlexGrid1.Col
  776.   
  777.    r = MSFlexGrid1.RowSel - dr
  778.    c = MSFlexGrid1.ColSel - dc
  779.    If c < 0 Then sc = -1 Else sc = 1
  780.    If r < 0 Then sr = -1 Else sr = 1
  781.    
  782.    If Not (c = 0 And r = 0) Then '判断是否选择多于一个单元格
  783.    
  784.    Label3 = "已修改,注意保存!"
  785.         full = Chr(KeyAscii)
  786.         
  787.         For i = 0 To r Step sr
  788.           For j = 0 To c Step sc
  789.              tt = MSFlexGrid1.TextMatrix(dr + i, dc + j)
  790.              
  791.              If KeyAscii = 8 Then  '
  792.                If (Len(tt) >= 1) Then
  793.                   tt = Mid(tt, 1, Len(tt) - 1)
  794.                End If
  795.                full = ""
  796.              End If
  797.              
  798.              If KeyAscii = 46 Then   '
  799.                tt = ""
  800.                full = ""
  801.              End If
  802.              
  803.              MSFlexGrid1.TextMatrix(dr + i, dc + j) = tt + full
  804.           Next j
  805.         Next i
  806.         ret = 1
  807.    End If
  808.    ActSelectProsce = ret
  809. End Function
  810. Sub Find(ss1 As String, ss2 As String, ss3 As String)
  811. Dim ret As Long
  812. Dim i As Long, r As Long, c As Long
  813. Dim tt As String, ss As String
  814. If (Len(ss1) <= 4) Then
  815.     If (ss1 <> "") Then
  816.        ss = ss1
  817.        c = 1
  818.     End If
  819.     
  820.     If (ss2 <> "") Then
  821.        ss = ss2
  822.        c = 2
  823.     End If
  824.     
  825.     If (ss3 <> "") Then
  826.        tt = Val(ss3)
  827.        If (MSFlexGrid1.Rows < tt) Then
  828.            MSFlexGrid1.TopRow = MSFlexGrid1.Rows - 1
  829.        Else
  830.             If (tt <= 0) Then
  831.                 MSFlexGrid1.TopRow = 1
  832.             Else
  833.                 MSFlexGrid1.TopRow = tt
  834.             End If
  835.        End If
  836.        
  837.     Else
  838.         r = MSFlexGrid1.Rows - 1
  839.         For i = 1 To r
  840.            tt = Mid(MSFlexGrid1.TextMatrix(i, c), 1, Len(ss))
  841.            
  842.            If (tt = ss) Then
  843.               ret = i
  844.               MSFlexGrid1.TopRow = i
  845.               Exit For
  846.            End If
  847.         Next
  848.     End If
  849. End If
  850. End Sub
  851. '/////////////////////////////////////////////////////////
  852. Private Sub Text3_Change()
  853.      Find "", "", Text3.Text
  854. End Sub
  855. Private Sub Text4_Change()
  856.     Dim ss As String, temss As String
  857.     ss = "               "
  858.     temss = Text4.Text
  859.     ChissToCode App.path & "MainCode.txt", temss, ss
  860.     Text5.Text = ss
  861. End Sub
  862. Private Sub TranAD_Click()
  863. Dim t
  864. t = MsgBox("    把文件tt.txt中以空格隔开的重编码" & Chr(13) _
  865.          & "换成以分号隔开的重编码." & Chr(13) _
  866.          & "    如:FULK 增加 啬 => FULK 增加;啬" & Chr(13) _
  867.          & "    注:输出文件为:tt.txtt", _
  868.      vbOKCancel, "编码转换以符合本输入法源码要求")
  869.      If t = 1 Then
  870.        ToolTranChar App.path & "tt.txt", 0, " ", ";"
  871.      End If
  872. End Sub