查看: 4846|回复: 10
收起左侧

[讨论] 这段VB代码为什么提示下标越界?

[复制链接]
25636
发表于 2011-5-14 22:04:50 | 显示全部楼层 |阅读模式
本帖最后由 25636 于 2011-5-15 13:28 编辑

Option Base 1
Private Type timusz
Numb As Integer
Question As String
ChooseA As String
ChooseB As String
ChooseC As String
ChooseD As String
Answer As String
Daan As String
End Type

Dim timu() As timusz

Private Sub cmdAdd_Click()
Dim j As Integer

timu(j).Numb = j
timu(j).Question = Timuedit.Text
timu(j).ChooseA = Aedit.Text
timu(j).ChooseB = Bedit.Text
timu(j).ChooseC = Cedit.Text
timu(j).ChooseD = Dedit.Text
'上面的文本框都是字符串
Put #1, j, timu(j)

MsgBox ("添加成功!")

End Sub

这段VB代码为什么提示下标越界?

伊の星
发表于 2011-5-14 22:19:15 | 显示全部楼层
数组的下标从0开始,不是从1开始
kinguen
发表于 2011-5-14 22:45:50 | 显示全部楼层
VB.....
应该淘汰才是的
xiaoluo
发表于 2011-5-14 23:09:58 | 显示全部楼层
redim timu(?)as timusz
25636
 楼主| 发表于 2011-5-15 10:57:16 | 显示全部楼层
回复 4楼 xiaoluo 的帖子

我不明白?
就是把

Dim timu() As timusz

改成

redim timu(?)as timusz
25636
 楼主| 发表于 2011-5-15 10:58:55 | 显示全部楼层
回复 2楼 伊の星 的帖子

就是说变量j不能一开始就是1吗?
或者说数组的第一项一定要被填充???
Luer
发表于 2011-5-15 11:48:48 | 显示全部楼层
回复 3楼 kinguen 的帖子

什么嘛~vb上手快的~~~而且也不错啊~~其实易语言也很给力的~
xiaoluo
发表于 2011-5-15 12:15:17 | 显示全部楼层
回复 5楼 25636 的帖子

不是:
是在 j=1  
下面
加:redim timu(j) as timusz
或:redim preserve timu(j) as timusz '(这个应该是你想要的)

2 楼的回答可以忽略。在VB 中可以不那样子。
xiaoluo
发表于 2011-5-15 12:18:57 | 显示全部楼层
还有:那个 变量 j   永远为 1
想实现什么功能?发出了所有的代码?
25636
 楼主| 发表于 2011-5-15 12:35:37 | 显示全部楼层
本帖最后由 25636 于 2011-5-15 12:36 编辑

回复 9楼 xiaoluo 的帖子

实现的是把值赋给自定义类型的数组,数组有多项记录,不单单是1项
然后把数据写入txt中,关闭/重新启动程序后,仍然能访问
【更多代码待会附上】

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-16 06:33 , Processed in 0.118983 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表