| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
|
资讯首页
|
瓷都德化
|
站内新闻
|
影视剧情
|
汽车世界
|
网络文摘
|
周易八卦
|
教程技巧
|
房产信息
|
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 服务器类 >> 正文 登录 注册
专 题 栏 目
  • 四川汶川8.0级强震
  • 机动车驾驶员考试资料
  • 高考试题及答案
  • 最 新 热 门
     德化又添3个地理标志证明
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化:造莲花美景
     [图文]德化:编织小网格
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     德化白瓷艺术展亮相深圳
     [组图]“世界瓷都·润养
     德化:前妻婚内举债近8万
    最 新 推 荐
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     [组图]德化各种花卉相继
     [组图]福建德化九仙山迎
     [图文]德化石牛山惊现双
     [组图]千年古瓷都德化的
     [组图]警方连捣5传销窝点
     [组图]福建民俗博物馆办
    相 关 文 章
    没有相关资讯
    GB与BIG5内码转换COM原代码         ★★★
    GB与BIG5内码转换COM原代码
    作者:未知 文章来源:网络文摘 更新时间:2006-5-10 2:45:07
    【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net
    这个COM用到了一个VC的资源文件。就是字典。
    大家可以去 http://www.cidu.net/ 下载附件(或点这里立刻下载)

    原代码如下:

    '//////////////////////////////////////////
    '中文名称:GB与BIG5内码互换控件
    '英文名称:GB2BIG5
    '作者:Blood
    '版本:1.0
    '制作时间:2002.3.5
    '版权所有 Blood 2002 - 2003
    '收藏:http://cidu.net
    '//////////////////////////////////////////

    Option Explicit

    '定义变量
    Dim BIG5Data As Variant
    Dim GBData As Variant

    '定义自定义类型,用来处理编码的高低字问题
    Type ChineseTypeA
    loChar As Byte
    hiChar As Byte
    End Type

    Private BIG5Type(&HA1 To &HFF, &H40 To &HFE) As ChineseTypeA '对应于BIG5字库
    Private GBType(&HA7 To &HFF, &HA1 To &HFE) As ChineseTypeA '对应与GB字库

    '//////////////////
    '公共函数开始
    '//////////////////

    'BIG5转换到GB的函数

    Function BIG5TOGB(strSource As String) As String
    Dim I As Long, Y As Long
    '定义数组,用来存放BIG5和GB内码数据
    Dim bteBIG5() As Byte
    Dim bteGB() As Byte

    '如果输入的内容为空,则退出函数
    If strSource = "" Then
    BIG5TOGB = ""
    Exit Function
    End If

    '将BIG5数组的类型从Unicode编码转换为系统缺省码
    bteBIG5 = StrConv(strSource, vbFromUnicode)
    '确定BIG5数组的下标,用来循环将所有的BIG5内容转换为GB内码
    Y = UBound(bteBIG5)
    ReDim bteGB(0 To Y)
    For I = 0 To Y
    If I = Y Then
    bteGB(I) = bteBIG5(I)
    Exit For
    End If
    If bteBIG5(I) < &HA1 Or bteBIG5(I + 1) < &H40 Then
    bteGB(I) = bteBIG5(I)
    Else
    bteGB(I) = BIG5Type(bteBIG5(I), bteBIG5(I + 1)).loChar
    bteGB(I + 1) = BIG5Type(bteBIG5(I), bteBIG5(I + 1)).hiChar
    I = I + 1
    End If
    Next I
    '将系统缺省码转换为Unicode编码
    BIG5TOGB = StrConv(bteGB, vbUnicode)
    '重新初始化GB数组,以释放内存
    Erase bteGB
    End Function

    'GB转换到BIG5的函数

    Function GBTOBIG5(strSource As String) As String
    Dim I As Long, Y As Long
    '定义数组,用来存放BIG5和GB内码数据
    Dim bteGB() As Byte
    Dim bteBIG5() As Byte

    '如果输入的内容为空,则退出函数
    If strSource = "" Then
    GBTOBIG5 = ""
    Exit Function
    End If

    '将GB数组的类型从Unicode编码转换为系统缺省码
    bteGB = StrConv(strSource, vbFromUnicode)
    '确定GB数组的下标,用来循环将所有的BIG5内容转换为GB内码
    Y = UBound(bteGB)
    ReDim bteBIG5(0 To Y)

    For I = 0 To Y
    If I = Y Then
    bteBIG5(I) = bteGB(I)
    Exit For
    End If
    If bteGB(I) < &HA1 Or bteGB(I + 1) < &HA1 Then
    bteBIG5(I) = bteGB(I)
    Else
    If bteGB(I) < &HB0 And bteGB(I + 1) >= &HA1 Then
    bteBIG5(I) = GBType(bteGB(I) + 6, bteGB(I + 1)).loChar
    bteBIG5(I + 1) = GBType(bteGB(I) + 6, bteGB(I + 1)).hiChar
    Else
    bteBIG5(I) = GBType(bteGB(I), bteGB(I + 1)).loChar
    bteBIG5(I + 1) = GBType(bteGB(I), bteGB(I + 1)).hiChar
    End If
    I = I + 1
    End If
    Next I
    '将系统缺省码转换为Unicode编码
    GBTOBIG5 = StrConv(bteBIG5, vbUnicode)
    '重新初始化BIG5数组,以释放内存
    Erase bteBIG5
    End Function

    '//////////////////
    '公共函数结束
    '//////////////////

    '类初始化
    Private Sub Class_Initialize()
    Dim I As Long
    Dim J As Long
    Dim iLen As Long

    '从资源文件中读取GB与BIG5的字库
    GBData = LoadResData(102, "CUSTOM") '//读取GB字库
    BIG5Data = LoadResData(101, "CUSTOM") '//读取BIG5字库

    For I = &HA1 To &HFE
    For J = &H40 To &HFE
    BIG5Type(I, J).loChar = BIG5Data(iLen)
    BIG5Type(I, J).hiChar = BIG5Data(iLen + 1)
    iLen = iLen + 2
    Next J
    Next I

    iLen = 0

    For I = &HA7 To &HFE
    For J = &HA1 To &HFE
    GBType(I, J).loChar = GBData(iLen)
    GBType(I, J).hiChar = GBData(iLen + 1)
    iLen = iLen + 2
    Next J
    Next I
    End Sub 


    声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。
    文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
    资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    点击数:545
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论