查看單個文章
舊 2006-09-21, 08:11 AM   #48 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

簡單實用的繁體與簡體互相轉換的代碼作
Private Declare Function LCMapString Lib "kernel32" Alias _
"LCMapStringA" (ByVal Locale As Long, ByVal dwMapFlags As _
Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, _
ByVal lpDestStr As String, ByVal cchDest As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" _
(ByVal lpString As String) As Long


Dim STf As String, 繁體字元串
Dim STj As String, 簡體字元串
Dim STlen As Long, 待轉換字串長度

Sub Test1() 'Gb碼簡體轉繁體
STj = "中華人民共和國"
STlen = lstrlen(STj)
STf = Space(STlen)
LCMapString &H804, &H4000000, STj, STlen, STf, STlen
Debug.Print STf
End Sub

Sub Test2() 'Gb碼繁體轉簡體
STf = "中華人民共和國"
STlen = lstrlen(STf)
STj = Space(STlen)
LCMapString &H804, &H2000000, STf, STlen, STj, STlen
Debug.Print STj
End Sub

Sub Test3() '國標繁體轉港台繁體
Te = "君不見黃河之水天上來,奔流到海不復回。"
ST = StrConv(Te, vbFromUnicode)
ST = StrConv(ST, vbUnicode, &H804)
ST = StrConv(ST, vbFromUnicode, &H404)
Te = StrConv(ST, vbUnicode)
Debug.Print Te
End Sub

Sub Test4() '港台繁體轉國標繁體
Te = "ǎ獨猠ㄓ瑈確"
ST = StrConv(Te, vbFromUnicode)
ST = StrConv(ST, vbUnicode, &H404)
ST = StrConv(ST, vbFromUnicode, &H804)
Te = StrConv(ST, vbUnicode)
Debug.Print Te
End Sub
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次