Private Sub Command1_Click() Dim str As String str = "11111 这里是好地方22223我们是好朋友" Dim i As Integer For i = 1 To Len(str) MsgBox Asc(Mid(str, i, 1)) Next End Sub老兄,你担心什么问题呢,是不是感觉不能够区分出汉字和字母啊。 用上面判断ASC码的方式可以判断是不是汉字。 你用的MID函数,是不会把字切掉一半的,MIDB函数到是有可能。我感觉你是错误的一位VB,像C一样,会把汉字当成两个字节长度来处理了,其实不是那样的。
用Mid 函数, 可能会出错????? 什么意思?不明白
up 没有问题,用Mid吧 ================================================================ 我是一个兵,来自老百姓。
Visual Basic 32-bit 版本的字串处理采用 Unicode,在处理一般的字符串的时候没有问题,可以直接把一个中文当成一个字符, dim aa as string aa ="11111这里是好地方22223我们是好朋友" msgbox mid(a,6,2) '显示"这里" msgbox mid(a,len(a)-2,3)'显示"好朋友" 但是对于纯文字的数据文件,千万不能这样,要先转换成为Ansi格式才能用 给分
然後用mid() left() right()
其他同up
Dim str As String
str = "11111 这里是好地方22223我们是好朋友"
Dim i As Integer
For i = 1 To Len(str)
MsgBox Asc(Mid(str, i, 1))
Next
End Sub老兄,你担心什么问题呢,是不是感觉不能够区分出汉字和字母啊。
用上面判断ASC码的方式可以判断是不是汉字。
你用的MID函数,是不会把字切掉一半的,MIDB函数到是有可能。我感觉你是错误的一位VB,像C一样,会把汉字当成两个字节长度来处理了,其实不是那样的。
什么意思?不明白
没有问题,用Mid吧
================================================================
我是一个兵,来自老百姓。
这样会很方便;
但如果你不知道字符串中你需要的字符的位置,那用MID就有些困难了。
MID将中文字视为一个位,与英文字符一样,即:
AA="jkl在k在"
mid(AA,4,2)="在k"
mid(AA,4,3)="在k在"
dim aa as string
aa ="11111这里是好地方22223我们是好朋友"
msgbox mid(a,6,2) '显示"这里"
msgbox mid(a,len(a)-2,3)'显示"好朋友"
但是对于纯文字的数据文件,千万不能这样,要先转换成为Ansi格式才能用
给分
InStr(aa, "这里")
InStr(aa, "好朋友")
直接用可以了
自己写一个SuperMid()就可以了