简单问题送100分!在线等待!!!急!!UP给分

zhoujinwei 2003-09-29 12:50:28
Dim strArray() As String
strArray = Split(strTmp, " ") '存到数组中,一个数组元素是你要的一个词组~~
Dim i As Integer

For i = 0 To UBound(strArray)
Select Case i
Case 0
jh(m) = strArray(i)
Case 1
zrr(m) = strArray(i)
Case 2
wh(m) = strArray(i)
Case 3
tm(m) = strArray(i)
Case 4
rq(m) = strArray(i)
Case 5
ys(m) = strArray(i)
Case 6
bz(m) = strArray(i)
End Select
Next i

只能找到前六项最后一项就是找不到不知道为什么
我其他的都看过了
文件没有问题 命名也没有问题可就是找不到
up给分
...全文
48 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
minghui000 2003-09-30
  • 打赏
  • 举报
回复
关注
feiqinfeiwhw 2003-09-30
  • 打赏
  • 举报
回复
Dim strArray() As String
strArray = Split(strTmp,chr(13)) '存到数组中,一个数组元素是你要的一个词组~~
Dim i As Integer

For i = 0 To UBound(strArray)-1
Select Case i
Case 0
jh(m) = strArray(i)
Case 1
zrr(m) = strArray(i)
Case 2
wh(m) = strArray(i)
Case 3
tm(m) = strArray(i)
Case 4
rq(m) = strArray(i)
Case 5
ys(m) = strArray(i)
Case 6
bz(m) = strArray(i)
End Select
Next i
yijiansong 2003-09-30
  • 打赏
  • 举报
回复
无需-1 去掉最后两个字间的全角空格就可以了
horsefly 2003-09-30
  • 打赏
  • 举报
回复
从你的代码看最后一个“34 大虾”会存放到你的“ys(m) = strArray(i)”中因为正好是六个
你是从0开始的循环会到5结束,你的case 6不会执行。
不需要去-1否则会少一个,这是vb不同与c/c++的地方。
ubound函数本身就是返回数组的最高位。就像test(0 to 7)这样一个数组他返回的是7而不是8所以无需-1。
去掉最后两个字间的全角空格就可以了,我帮你试过了就是用你的代码试的。
zlpanzy 2003-09-29
  • 打赏
  • 举报
回复
学习
hemeijun81 2003-09-29
  • 打赏
  • 举报
回复
up
luzufu 2003-09-29
  • 打赏
  • 举报
回复
你可以试试,下面代码,先replace替代那些全角空格,我测试过了,是七个
Dim ss
Dim strArray() As String
Dim i As Integer
ss = "02 234 陈前进 关于什么水磨石们的我二 99-09-08 34 大虾"
ss = Replace(ss, " ", " ")
strArray = Split(ss, " ")
For i = 0 To UBound(strArray)
MsgBox strArray(i)
Next i
lzj34 2003-09-29
  • 打赏
  • 举报
回复
主要是一个数组起始点问题
VB是默认是从1开始
而你的Case 是从0开始,所以你只要从1开始就OK了
li_ping 2003-09-29
  • 打赏
  • 举报
回复
没错,事对的。
Tonydavey1981 2003-09-29
  • 打赏
  • 举报
回复
是啊。是空格的话代码没错。我跟过。
demo001 2003-09-29
  • 打赏
  • 举报
回复
如果For i = 0 To UBound(strArray)-1

并没有少一项

因为你是从0开始赋值的,最后一项是一个ascii码为0的不可见字符

类似于c语言中的数组

如果从1开始,则UBound返回的是数组实际元素个数。
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
如果是空格,那你的代码就没有错了,单步跟踪过了吗?仔细跟踪一下吧。
zhoujinwei 2003-09-29
  • 打赏
  • 举报
回复
: chewinggum(口香糖·向星星前进)
说的对的,我发的那段数据后面是一个全角空格
不过我试的是空格。
如果是全角空格的话它自动认为是一个文字两者联起了的就“趁 天” 会读成“趁天”
可我这是天读不到
急!!!帮帮忙!
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
我现在是:“02 234 陈前进 关于什么水磨石们的我二 99-09-08 34 大虾”

用你贴出来的这个字符串,UBound(strArray) = 5
分解出来的最后一个字符串是"34 大虾" 那不是空格
zhoujinwei 2003-09-29
  • 打赏
  • 举报
回复
我试了一下: lxqlogo0(群子)
说的是可以的
可是我用MSGBOX看了一下里面是空的
可读的就是这句话啊
watt 2003-09-29
  • 打赏
  • 举报
回复
好象没有问题,贴数据上来吧!
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
拷贝过来发现你的"大虾"前面好像不是空格
zhengjianning402 2003-09-29
  • 打赏
  • 举报
回复
up
宏伊 2003-09-29
  • 打赏
  • 举报
回复
up
zhoujinwei 2003-09-29
  • 打赏
  • 举报
回复
我现在是:“02 234 陈前进 关于什么水磨石们的我二 99-09-08 34 大虾”
如果For i = 0 To UBound(strArray)-1
那不是就少了一项了
大家可先试一下帮我急!!啊!!
加载更多回复(5)

7,759

社区成员

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

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