VisualBasic 6编程中的汉字处理
日期:2007年8月25日 作者: 查看:[大字体 中字体 小字体]-
在DOS时代,拥有一个华丽的汉字菜单几乎是每个高档中文应用程序必须的包装。中文Windows操作系统的出现使得高级开发平台实现全中文的提示和界面非常容易和方便。在一般的应用程序中已经很少需要去专门考虑汉字处理的问题。
但是在许多工程控制和字符串处理的环境中,汉字字符的处理仍然有别于西文字符的处理,需要加以专门的考虑。
一、VB6对汉字处理的支持
对汉字处理,VB6主要是提供了一些输入法设置方面的支持。它提供了一个ImeMode属性和ImeStatus函数来确定和设置输入法的状态。而且此属性和方法只在VB6的东亚区版本中有效。
IMEStatus函数返回一个整数,用来指定当前Windows的输入法(IME)方式。
下面是中文地区的返回值:
常数 值 描述
vbIMENoOP 0 不安装IME(缺省)
vbIMEOn 1 打开IME
ImeMode属性返回或者设置被选定的对象的 IME (Input Method Editor,输入方法编辑器)状态。
可以先用ImeStatus函数来检测当前的输入状态,并用IMEMode来控制其输入状态。
如Text1.IMEMode=0(预定值)、=1(切换为中文输入)、=2(切换为英文输入)
对于简体汉字和繁体汉字 IME,只能使用设置 0 到 2。设置 3 到 10 对于汉字系统是无效的。
VB6功能上对汉字处理的直接支持也仅限于此。对于汉字字符串的处理,VB6并没有提供专门的函数和方法。
二、确定汉字字符串的长度
各个版本的VB对汉字字符的长度定义并不相同。在Windows 3.x中,VB3中认为每个汉字的长度为2字节。VB自从32位版本以後,不管中英文字,均以2 bytes来储存,这与中文Win95的汉字内核有关。但是VB4以后,VB认为每个汉字的长度为1。这在处理包含汉字的字符串时带来很多的不便。
由于Len、Left、Mid等字符串函数认为一个汉字和一个西文字符的长度都为1,因此处理汉字字符串时有一定的难度。实现上必须要能把汉字按照两个字符(字节)的形式读出。因此在截取汉字字符串的子串时需特别注意。
由于汉字处理和汉字字模存储的特殊性,在许多情况下我们希望汉字字符的长度为2,英文字符为1。由于VB5和VB6把一个汉字作为一个字符。因此处理汉字时首先必须能正确判断汉字字符串的长度。
在VB3或C++里,汉字的 ASCII码均大于零,而VB5和VB6中汉字的ASCII码小于0。因此通过判断一个未知字符的ASCII码就可以判断该字符是否汉字。
这里我们提供了两种方法来判断汉字字符串的长度。
1、方法1
VB6中提供了LenB函数用于字符串中的字节数据。如同在双字节字符集(DBCS)语言中一样,LenB返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB返回在内存中的大小。
LenB(StrConv(Str1,vbFormUnicode))
对要处理的字符串Str1,必须先使用StrConv函数把ANSI格式的Byte数组转换为字符串,否则直接使用LenB函数得到的结果比实际结果大。
2、方法2
这里自定义了一个子函数CLen来计算汉字字符串的实际长度。同时还能判断字符串中汉字的实际个数。
Function CLen(HzStr$) as Integer
Static HzNum as Integer
L = len(HzStr$)
For n=1 to L
If Asc(mid$( HzStr$,n,1))<0 Then HzNum = HzNum + 1 - [1] [2] [3] [4] [5] [6] 下一页
-
- VisualBasic 6编程中的汉字处理 相关文章:
- ·照片处理:Photoshop人物照片换头术
- ·BAT批处理文件语法
- ·生不逢时的祭品 谈英特尔图拉丁处理器
- ·图象处理中的边缘检测------canny算子
- ·ASP.NET购物车的实现及结算处理
- ·PS相片处理实例 芙蓉姐姐大变身
- ·Excel公式应用常见错误及处理
- ·PHOTOSHOP处理图片下雪效果
- ·照片处理:优化MM照片的眉毛、睫毛和眼睛
- ·PS处理老照片
- VisualBasic 6编程中的汉字处理 相关软件
- ·易达第二代身份证照片处理系统(lab色彩版) V1.4
- ·智慧书——永恒的处世经典
- ·友锋图像处理系统 V5.7
- ·王从希处女写真集美图欣赏
- ·生活在别处
- ·Image batch dispose批量图片处理工具 V5.88
- ·图像批处理专家V1.31
- ·统计软件-数据处理-简明统计分析(CS) V10.32
- ·《鬼神之门2》-天涯何处
- ·处世36计
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:VB COM基础讲座之类的建立
下一篇:VB问题全功略(25)
精品推荐
热点TOP10
- ·VB+Access设计图书管理系统
- ·VB设计有语音报时和报警功能的闹钟
- ·窗体控件大小随窗体大小变化而变化
- ·VB中使用DirectX库的简明教程
- ·用VB跟我学做记事本(很简单哟)
- ·VB的数据库类型源码60实例下载
- ·VB中使用EXCEL输出
- ·180个VB图形界面类源码实例下载
- ·VB打造超酷个性化菜单(六)
- ·用API修改注册表的完整模块
- ·通信控件MSComm使用详解
- ·WINDOWS消息说明
- ·16进制数转换成十进制, 16进制转换成二进制等
- ·vsprint打印实例
- ·webbrowser 技巧2 (收藏)
- ·巧用VB6的DataGrid实现通用电子表格
- ·FindWindow
- ·用VB6.0制作画图板
- ·VB编程之路-如何让界面美化
- ·VB教程 第二章:控件学习
特别推荐
- ·深入浅出VB.Net Windows Form
- ·简易股票税率计算器
- ·VisualBasic 6编程中的汉字处理
- ·自动读取用户登陆名称,再进行密码验证
- ·用API函数遍历指定驱动器、目录的文件
- ·VB的数据库类型源码60实例下载
- ·用VB制作IE工具条自定义按钮
- ·用VB创建MS Office的COM加载项
- ·教你用Visual Basic制作安装程序
- ·WebComputing━ADO总结报告
- ·vsprint打印实例
- ·用VB实现一个简单的ESMTP客户端
- ·webbrowser 技巧2 (收藏)
- ·SetForegroundWindow
- ·用API修改注册表的完整模块
- ·VB打造超酷个性化菜单(六)
- ·WINDOWS消息说明
- ·窗体控件大小随窗体大小变化而变化
- ·VB设计有语音报时和报警功能的闹钟
