有哪位老兄清楚ime文件的格式,如何使用它

LiaoCheng 2002-03-06 12:53:47
我想跟据一个汉字来取得他的拼音,应该可以通过IME文件来取得吧
...全文
30 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangoxyz 2002-03-06
  • 打赏
  • 举报
回复
回复人: likesome(likesome) ( ) 信誉:97 2002-3-6 1:04:08 得分:0


Public Function getHzPy(hzStr As String) As String
Dim myHzm As Integer
Dim qm As Integer
Dim wm As Integer
Dim hznm As String
Dim i As Integer
Dim tmpstr As String
getHzPy = ""
For i = 1 To Len(hzStr)
tmpstr = Mid(hzStr, i, 1)

myHzm = Asc(tmpstr)

If myHzm > = 0 And myHzm < 256 Then
'字母
getHzPy = getHzPy + tmpstr
Else
'汉字
qm = (myHzm + 65536) \ 256
wm = (myHzm + 65536) Mod 256
'十进制到十六进制
hznm = tento(qm, 16) & tento(wm, 16)
End If
If "B0A1" < = hznm And hznm < = "B0C4" Then
getHzPy = getHzPy + "A"
ElseIf "B0C5" < = hznm And hznm < = "B2C0" Then
getHzPy = getHzPy + "B"
ElseIf "B2C1" < = hznm And hznm < = "B4ED" Then
getHzPy = getHzPy + "C"
ElseIf "B4EE" < = hznm And hznm < = "B6E9" Then
getHzPy = getHzPy + "D"
ElseIf "B6EA" < = hznm And hznm < = "B7A1" Then
getHzPy = getHzPy + "E"
ElseIf "B7A2" < = hznm And hznm < = "B8C0" Then
getHzPy = getHzPy + "F"
ElseIf "B8C1" < = hznm And hznm < = "B9FD" Then
getHzPy = getHzPy + "G"
ElseIf "B9FE" < = hznm And hznm < = "BBF6" Then
getHzPy = getHzPy + "H"
ElseIf "BBF7" < = hznm And hznm < = "BFA5" Then
getHzPy = getHzPy + "J"
ElseIf "BFA6" < = hznm And hznm < = "C0AB" Then
getHzPy = getHzPy + "K"
ElseIf "C0AC" < = hznm And hznm < = "C2E7" Then
getHzPy = getHzPy + "L"
ElseIf "C2E8" < = hznm And hznm < = "C4C2" Then
getHzPy = getHzPy + "M"
ElseIf "C4C3" < = hznm And hznm < = "C5B5" Then
getHzPy = getHzPy + "N"
ElseIf "C5B6" < = hznm And hznm < = "C5BD" Then
getHzPy = getHzPy + "O"
ElseIf "C5BE" < = hznm And hznm < = "C6D9" Then
getHzPy = getHzPy + "P"
ElseIf "C6DA" < = hznm And hznm < = "C8BA" Then
getHzPy = getHzPy + "Q"
ElseIf "C8BB" < = hznm And hznm < = "C8F5" Then
getHzPy = getHzPy + "R"
ElseIf "C8F6" < = hznm And hznm < = "CBF9" Then
getHzPy = getHzPy + "S"
ElseIf "CBFA" < = hznm And hznm < = "CDD9" Then
getHzPy = getHzPy + "T"
ElseIf "CDDA" < = hznm And hznm < = "CEF3" Then
getHzPy = getHzPy + "W"
ElseIf "CEF4" < = hznm And hznm < = "D188" Then
getHzPy = getHzPy + "X"
ElseIf "D1B9" < = hznm And hznm < = "D4D0" Then
getHzPy = getHzPy + "Y"
ElseIf "D4D1" < = hznm And hznm < = "D7F9" Then
getHzPy = getHzPy + "Z"
Else
getHzPy = getHzPy + hznm
End If
Next
End Function

fangoxyz 2002-03-06
  • 打赏
  • 举报
回复
回复人: likesome(likesome) ( ) 信誉:97 2002-3-6 1:04:08 得分:0


Public Function getHzPy(hzStr As String) As String
Dim myHzm As Integer
Dim qm As Integer
Dim wm As Integer
Dim hznm As String
Dim i As Integer
Dim tmpstr As String
getHzPy = ""
For i = 1 To Len(hzStr)
tmpstr = Mid(hzStr, i, 1)

myHzm = Asc(tmpstr)

If myHzm > = 0 And myHzm < 256 Then
'字母
getHzPy = getHzPy + tmpstr
Else
'汉字
qm = (myHzm + 65536) \ 256
wm = (myHzm + 65536) Mod 256
'十进制到十六进制
hznm = tento(qm, 16) & tento(wm, 16)
End If
If "B0A1" < = hznm And hznm < = "B0C4" Then
getHzPy = getHzPy + "A"
ElseIf "B0C5" < = hznm And hznm < = "B2C0" Then
getHzPy = getHzPy + "B"
ElseIf "B2C1" < = hznm And hznm < = "B4ED" Then
getHzPy = getHzPy + "C"
ElseIf "B4EE" < = hznm And hznm < = "B6E9" Then
getHzPy = getHzPy + "D"
ElseIf "B6EA" < = hznm And hznm < = "B7A1" Then
getHzPy = getHzPy + "E"
ElseIf "B7A2" < = hznm And hznm < = "B8C0" Then
getHzPy = getHzPy + "F"
ElseIf "B8C1" < = hznm And hznm < = "B9FD" Then
getHzPy = getHzPy + "G"
ElseIf "B9FE" < = hznm And hznm < = "BBF6" Then
getHzPy = getHzPy + "H"
ElseIf "BBF7" < = hznm And hznm < = "BFA5" Then
getHzPy = getHzPy + "J"
ElseIf "BFA6" < = hznm And hznm < = "C0AB" Then
getHzPy = getHzPy + "K"
ElseIf "C0AC" < = hznm And hznm < = "C2E7" Then
getHzPy = getHzPy + "L"
ElseIf "C2E8" < = hznm And hznm < = "C4C2" Then
getHzPy = getHzPy + "M"
ElseIf "C4C3" < = hznm And hznm < = "C5B5" Then
getHzPy = getHzPy + "N"
ElseIf "C5B6" < = hznm And hznm < = "C5BD" Then
getHzPy = getHzPy + "O"
ElseIf "C5BE" < = hznm And hznm < = "C6D9" Then
getHzPy = getHzPy + "P"
ElseIf "C6DA" < = hznm And hznm < = "C8BA" Then
getHzPy = getHzPy + "Q"
ElseIf "C8BB" < = hznm And hznm < = "C8F5" Then
getHzPy = getHzPy + "R"
ElseIf "C8F6" < = hznm And hznm < = "CBF9" Then
getHzPy = getHzPy + "S"
ElseIf "CBFA" < = hznm And hznm < = "CDD9" Then
getHzPy = getHzPy + "T"
ElseIf "CDDA" < = hznm And hznm < = "CEF3" Then
getHzPy = getHzPy + "W"
ElseIf "CEF4" < = hznm And hznm < = "D188" Then
getHzPy = getHzPy + "X"
ElseIf "D1B9" < = hznm And hznm < = "D4D0" Then
getHzPy = getHzPy + "Y"
ElseIf "D4D1" < = hznm And hznm < = "D7F9" Then
getHzPy = getHzPy + "Z"
Else
getHzPy = getHzPy + hznm
End If
Next
End Function
Public Function tento(m As Integer, n As Integer) As String
Dim q As Integer
Dim R As Integer
tento = ""
Dim bStr As String
Do
Call myDivide(m, n, q, R)
If R > 9 Then
bStr = Chr(55 + R)
Else
bStr = Str(R)
End If
tento = Trim(bStr) & tento
m = q
Loop While q < > 0
End Function
'************************辅助过程,得到任意两个数的商和余数***************************
Public Sub myDivide(num1 As Integer, num2 As Integer, q As Integer, R As Integer)
If num2 = 0 Then
MsgBox ("非法除数")
Exit Sub
End If
If num1 / num2 > = 0 Then
q = Int(num1 / num2)
Else
q = Int(num1 / num2) + 1
End If
R = num1 Mod num2
End Sub

fangoxyz 2002-03-06
  • 打赏
  • 举报
回复
回复人: likesome(likesome) ( ) 信誉:97 2002-3-6 1:04:08 得分:0


Public Function getHzPy(hzStr As String) As String
Dim myHzm As Integer
Dim qm As Integer
Dim wm As Integer
Dim hznm As String
Dim i As Integer
Dim tmpstr As String
getHzPy = ""
For i = 1 To Len(hzStr)
tmpstr = Mid(hzStr, i, 1)

myHzm = Asc(tmpstr)

If myHzm > = 0 And myHzm < 256 Then
'字母
getHzPy = getHzPy + tmpstr
Else
'汉字
qm = (myHzm + 65536) \ 256
wm = (myHzm + 65536) Mod 256
'十进制到十六进制
hznm = tento(qm, 16) & tento(wm, 16)
End If
If "B0A1" < = hznm And hznm < = "B0C4" Then
getHzPy = getHzPy + "A"
ElseIf "B0C5" < = hznm And hznm < = "B2C0" Then
getHzPy = getHzPy + "B"
ElseIf "B2C1" < = hznm And hznm < = "B4ED" Then
getHzPy = getHzPy + "C"
ElseIf "B4EE" < = hznm And hznm < = "B6E9" Then
getHzPy = getHzPy + "D"
ElseIf "B6EA" < = hznm And hznm < = "B7A1" Then
getHzPy = getHzPy + "E"
ElseIf "B7A2" < = hznm And hznm < = "B8C0" Then
getHzPy = getHzPy + "F"
ElseIf "B8C1" < = hznm And hznm < = "B9FD" Then
getHzPy = getHzPy + "G"
ElseIf "B9FE" < = hznm And hznm < = "BBF6" Then
getHzPy = getHzPy + "H"
ElseIf "BBF7" < = hznm And hznm < = "BFA5" Then
getHzPy = getHzPy + "J"
ElseIf "BFA6" < = hznm And hznm < = "C0AB" Then
getHzPy = getHzPy + "K"
ElseIf "C0AC" < = hznm And hznm < = "C2E7" Then
getHzPy = getHzPy + "L"
ElseIf "C2E8" < = hznm And hznm < = "C4C2" Then
getHzPy = getHzPy + "M"
ElseIf "C4C3" < = hznm And hznm < = "C5B5" Then
getHzPy = getHzPy + "N"
ElseIf "C5B6" < = hznm And hznm < = "C5BD" Then
getHzPy = getHzPy + "O"
ElseIf "C5BE" < = hznm And hznm < = "C6D9" Then
getHzPy = getHzPy + "P"
ElseIf "C6DA" < = hznm And hznm < = "C8BA" Then
getHzPy = getHzPy + "Q"
ElseIf "C8BB" < = hznm And hznm < = "C8F5" Then
getHzPy = getHzPy + "R"
ElseIf "C8F6" < = hznm And hznm < = "CBF9" Then
getHzPy = getHzPy + "S"
ElseIf "CBFA" < = hznm And hznm < = "CDD9" Then
getHzPy = getHzPy + "T"
ElseIf "CDDA" < = hznm And hznm < = "CEF3" Then
getHzPy = getHzPy + "W"
ElseIf "CEF4" < = hznm And hznm < = "D188" Then
getHzPy = getHzPy + "X"
ElseIf "D1B9" < = hznm And hznm < = "D4D0" Then
getHzPy = getHzPy + "Y"
ElseIf "D4D1" < = hznm And hznm < = "D7F9" Then
getHzPy = getHzPy + "Z"
Else
getHzPy = getHzPy + hznm
End If
Next
End Function
Public Function tento(m As Integer, n As Integer) As String
Dim q As Integer
Dim R As Integer
tento = ""
Dim bStr As String
Do
Call myDivide(m, n, q, R)
If R > 9 Then
bStr = Chr(55 + R)
Else
bStr = Str(R)
End If
tento = Trim(bStr) & tento
m = q
Loop While q < > 0
End Function
'************************辅助过程,得到任意两个数的商和余数***************************
Public Sub myDivide(num1 As Integer, num2 As Integer, q As Integer, R As Integer)
If num2 = 0 Then
MsgBox ("非法除数")
Exit Sub
End If
If num1 / num2 > = 0 Then
q = Int(num1 / num2)
Else
q = Int(num1 / num2) + 1
End If
R = num1 Mod num2
End Sub

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧