易截截图软件、单文件、免安装、纯绿色、仅160KB

VB中的Unicode 和 Ansi 格式 转换


 VB中的Unicode 和 Ansi 格式
    Visual Basic 32-bit 版本的字串处理采用 Unicode,也就是说字串在 VB 内部是以Unicode 的格式来存放。何谓 Unicode?简单的说,就是每一个字符都是以 2-byte 的形式表示,而每个「实体字符」就是一个「字符」。因此,
 Len("大家好")
 Len("abc")
    所返回的值都是 3,因为「大」和「a」都是一个字符。
    但是这对一些中文字串处理,例如纯文字的数据文件,却是一个大灾难,因为你必须以byte 来定位每个字符,可是 Unicode 却把一切的处理全搞砸了。例如:
Len("Good Morning") 返回 12,而 
Len("今天天气很好") 返回 6 
    对初学者而言,好不容易能使用 VB 来写程序已经是件了不起的事了,却马上在中文处理上挨了一记闷棍,所受到的打击实在不小。但是不要怕,事实上只要再多了解一些指令,就可以把中文处理的问题解决了。
    是什么指令呢?最重要的莫过于 StrConv 了。StrConv 函数的语法为:StrConv(待转换字串, 转换格式)
     其中转换格式在这里用到的是:
    vbUnicode 将 Ansi 字串转换为 Unicode
    vbfromUnicode 将 Unicode 字串转换为 Ansi
    将字串转成 Ansi 之后,所有的字串处理指令都要加个 B,例如:LeftB, RightB,
    MidB, ChrB, InstrB, LenB, InputB 等。例用这些指令来处理就行了。
    当你处理完毕之后,你可以再将它再转回 Unicode,这样就可以使用一般的字串处理指令了。这样讲看得懂吗?如果还是不了解,看看下面的实例说明:
简易使用范例
看看下面的基本范例您应该就会对 VB 的字串处理方式有些概念。
Private Sub Command1_Click ()
Dim sUnicode As String
Dim sAnsi As String
' Unicode 运算
sUnicode = "王小明,A123456789,651023,上海市中山路100号,(02)2345678"
Debug.Print Len(sUnicode) ' 返回 44
Debug.Print Mid$(sUnicode, 5, 10) ' 返回 A123456789
Debug.Print Instr(sUnicode, "上海市") ' 返回 23
' 将 Unicode 字串转成 Ansi
sAnsi = StrConv(sUnicode, vbfromUnicode)
' Ansi 运算
Debug.Print LenB(sAnsi) ' 返回 54
Debug.Print MidB$(sAnsi, 8, 10) ' 返回 ?????,因为忘了转回 Unicode
Debug


相关文档:

VB.NET2005读取XML数据

通过调用CreateDataSetfromXml取得XML数据
Imports System.Xml
Public Const FILE_CONFIG = "MZZ.xml"
Public Const PATH_CONFIG = "\XML\"
Dim dstXML As DataSet
Dim tblXML_DB As DataTable
Dim dtCod As New DataTable
Dim strSQL As String = ""

clsPublic ......

用VB Winsock控件创建TCP/IP客户机/服务器程序


转自:http://www.52arm.com/Article_Show.asp?ArticleID=186
 
作者:weidian    ---本站原创    点击数:4721    发表时间:2008-5-7    编辑:sanzang
 
Winsock控件建立在TCP、UDP协议的基础上,完成与远程计算机的 ......

VB局域网自动传播病毒


主窗体代码:
'打开网页
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'复制文件
Private Declare Fu ......

VB登陆163邮箱

添加2个text,一个command,一个 WebBrowser
Dim vDoc, vTag
Dim i As Integer
Private Sub Command1_Click()
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
If vTag.Type = "text" Then
Select Case vTag.Nam ......

VB与C#互转工具

http://www.carlosag.net/Tools/CodeTranslator/ 这个也许学计算机的哥哥姐姐们会用得到,,就转了希望多多支持哦 西西  用得到就顶哦
差点忘了哦    ,藕还有一个sql的插件很好用的呀。。。。有想要的就留言下要咯。。。。。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号