字符串处理的问题

qjzrd 2005-09-15 10:33:27
问:现在有个字符串比如:
“你3456中文数据asdfgt"
这个字符串的总长度是20位把, 我要将前1-6位放在变量a中,紧跟的后6位7-16放在变量B中,17-20放在变量C中,这个用程序怎么写呢,


...全文
169 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwshws123 2005-10-07
  • 打赏
  • 举报
回复
参与
wwh999 2005-09-15
  • 打赏
  • 举报
回复
如果要考虑这个问题的话,要试一下strConv,自已看.

StrConv 函数


返回按指定类型转换的 Variant (String)。

语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)


设置值

conversion 参数的设置值为:

常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。

vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode
qjzrd 2005-09-15
  • 打赏
  • 举报
回复
TO: of123()
一个中文有两个字符
B = MidB(str1,9,9)
C = MidB(str1,18)
返回的怎么是乱码呢

of123 2005-09-15
  • 打赏
  • 举报
回复
更正
1
A = LeftB(str1, 6)
B = MidB(str1,7,10)
C = MidB(str1,17)

2
A = LeftB(str1, 8)
B = MidB(str1,9,9)
C = MidB(str1,18)
of123 2005-09-15
  • 打赏
  • 举报
回复
1
A = Left(str1, 6)
B = Mid(str1,7,10)
C = Mid(str1,17)

2
A = Left(str1, 8)
B = Mid(str1,9,9)
C = Mid(str1,18)
qjzrd 2005-09-15
  • 打赏
  • 举报
回复
TO: crycoming(瞎编) 老兄

你的写法取出的结果不对,中文占用两个字符呢


qjzrd 2005-09-15
  • 打赏
  • 举报
回复
好现在有个固定格式的字符串:
1-6位是题目的代号 ,不够的右补空格
7-40位是题目,不够的位右补补空格
41-60位是答案,不够的位右补空格

如:“123 你好吗? 1 "
我现在要把代号,题目,答案个放一个变量里
crycoming 2005-09-15
  • 打赏
  • 举报
回复
s=“123 中国 1111”
A=mid(s,1,8)
B=mid(s,9,9)
C=mid(s,18)
domhuang 2005-09-15
  • 打赏
  • 举报
回复
Left$() Right$() mid$()

你具体是什么要求啊
sdrcxzy 2005-09-15
  • 打赏
  • 举报
回复
按位截取就可以了
qjzrd 2005-09-15
  • 打赏
  • 举报
回复
忘了,字符串,要是“123 中国 1111”的呢

前8位放在A中,9-17位放在B中,18-21放在C中

谢谢,我在线等

busy2005 2005-09-15
  • 打赏
  • 举报
回复
呵呵 人还是要靠自己啊 多实验就出来了 我终于明白了

原来是 mscomm.inputmode 属性设置的问题 换成二进制形式 就需要上面语句转化 文本形式则不用!
bbhere 2005-09-15
  • 打赏
  • 举报
回复
关注,学习
busy2005 2005-09-15
  • 打赏
  • 举报
回复
做个好人也帮我解决一下! 看看上面的问题
qjzrd 2005-09-15
  • 打赏
  • 举报
回复
谢谢各位,问题解决
busy2005 2005-09-15
  • 打赏
  • 举报
回复
看看我的mscomm的接收事件中
用strconv()函数转化了一下 就只能收到字符串的第一个字符了,是怎么回事? 例如发一个buffer="sdfsadadf'只能受到第一个s 或者sd
buffer=mscomm.input
Debug.Print StrConv(buffer, vbUnicode)
Text3.Text = Text3.Text & StrConv(buffer, vbUnicode)
jxgzay 2005-09-15
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
X = "你3456中文数据asdfgt"
X = StrConv(X, vbFromUnicode)
a = MidB(X, 1, 6)
a = StrConv(a, vbUnicode)
b = MidB(X, 7, 10)
b = StrConv(b, vbUnicode)
c = MidB(X, 17, 4)
c = StrConv(c, vbUnicode)
Print a
Print b
Print c

End Sub

7,787

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧