仓酷云

标题: ASP教程之GB与BIG5内码转换COM原代码 [打印本页]

作者: 冷月葬花魂    时间: 2015-1-16 22:56
标题: ASP教程之GB与BIG5内码转换COM原代码
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。转换这个COM用到了一个VC的资本文件。就是字典。
人人能够往61.134.75.70/download/gb2big5.zip下载

原代码以下:

//////////////////////////////////////////
中文称号:GB与BIG5内码交换控件
英文称号:GB2BIG5
Blood
版本:1.0
制造工夫:2002.3.5
版权一切Blood2002-2003
//////////////////////////////////////////

OptionExplicit

界说变量
DimBIG5DataAsVariant
DimGBDataAsVariant

界说自界说范例,用来处置编码的上下字成绩
TypeChineseTypeA
loCharAsByte
hiCharAsByte
EndType

PrivateBIG5Type(&HA1To&HFF,&H40To&HFE)AsChineseTypeA对应于BIG5字库
PrivateGBType(&HA7To&HFF,&HA1To&HFE)AsChineseTypeA对应与GB字库

//////////////////
大众函数入手下手
//////////////////

BIG5转换到GB的函数

FunctionBIG5TOGB(strSourceAsString)AsString
DimIAsLong,YAsLong
界说数组,用来寄存BIG5和GB内码数据
DimbteBIG5()AsByte
DimbteGB()AsByte

假如输出的内容为空,则加入函数
IfstrSource=""Then
BIG5TOGB=""
ExitFunction
EndIf

将BIG5数组的范例从Unicode编码转换为体系缺省码
bteBIG5=StrConv(strSource,vbFromUnicode)
断定BIG5数组的下标,用来轮回将一切的BIG5内容转换为GB内码
Y=UBound(bteBIG5)
ReDimbteGB(0ToY)
ForI=0ToY
IfI=YThen
bteGB(I)=bteBIG5(I)
ExitFor
EndIf
IfbteBIG5(I)<&HA1OrbteBIG5(I+1)<&H40Then
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
EndIf
NextI
将体系缺省码转换为Unicode编码
BIG5TOGB=StrConv(bteGB,vbUnicode)
从头初始化GB数组,以开释内存
ErasebteGB
EndFunction

GB转换到BIG5的函数

FunctionGBTOBIG5(strSourceAsString)AsString
DimIAsLong,YAsLong
界说数组,用来寄存BIG5和GB内码数据
DimbteGB()AsByte
DimbteBIG5()AsByte

假如输出的内容为空,则加入函数
IfstrSource=""Then
GBTOBIG5=""
ExitFunction
EndIf

将GB数组的范例从Unicode编码转换为体系缺省码
bteGB=StrConv(strSource,vbFromUnicode)
断定GB数组的下标,用来轮回将一切的BIG5内容转换为GB内码
Y=UBound(bteGB)
ReDimbteBIG5(0ToY)

ForI=0ToY
IfI=YThen
bteBIG5(I)=bteGB(I)
ExitFor
EndIf
IfbteGB(I)<&HA1OrbteGB(I+1)<&HA1Then
bteBIG5(I)=bteGB(I)
Else
IfbteGB(I)<&HB0AndbteGB(I+1)>=&HA1Then
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
EndIf
I=I+1
EndIf
NextI
将体系缺省码转换为Unicode编码
GBTOBIG5=StrConv(bteBIG5,vbUnicode)
从头初始化BIG5数组,以开释内存
ErasebteBIG5
EndFunction

//////////////////
大众函数停止
//////////////////

类初始化
PrivateSubClass_Initialize()
DimIAsLong
DimJAsLong
DimiLenAsLong

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

ForI=&HA1To&HFE
ForJ=&H40To&HFE
BIG5Type(I,J).loChar=BIG5Data(iLen)
BIG5Type(I,J).hiChar=BIG5Data(iLen+1)
iLen=iLen+2
NextJ
NextI

iLen=0

ForI=&HA7To&HFE
ForJ=&HA1To&HFE
GBType(I,J).loChar=GBData(iLen)
GBType(I,J).hiChar=GBData(iLen+1)
iLen=iLen+2
NextJ
NextI
EndSub

</p>ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!
作者: 第二个灵魂    时间: 2015-1-20 06:17
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 山那边是海    时间: 2015-1-27 05:05
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
作者: 冷月葬花魂    时间: 2015-1-31 21:46
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
作者: 柔情似水    时间: 2015-2-6 23:55
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
作者: 透明    时间: 2015-2-19 03:46
不能只是将它停留在纸上谈兵的程度上。
作者: 小妖女    时间: 2015-3-6 12:35
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
作者: 仓酷云    时间: 2015-3-13 00:57
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 不帅    时间: 2015-3-20 07:44
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2