正文
vb.net列表框转数组 vb列表框输出
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
vb 按行保存列表框选中项到txt,然后按行读取保存到数组
①方法简介:使用Visual Basic按行保存列表框选中项到txt,然后按行读取保存到数组。
设置listbox的style属性为1,使他显示复选框。利用listbox的selected属性获得选中项的数据。并将其按顺序保存到变量Str中,在C盘创建txt文件并保存。然后使用line input语句按行读取字符串,并保存在Arr变量里。
②所用工具:Visual Basic 6.0
③步骤:
新建一个标准EVE工程
创建一个Textbox和一个CommandButton,用于在Listbox中输入数据。设置Textbox的Text属性为空字符串“”,名称为Text1,设置CommandButton的Caption属性为“录入数据”,名称为Command1;(*注1)
创建一个Listbox,设置其Style属性为1-Checkbox,名称为List1;
创建两个CommandButton,名称分别为Command2、Command3,Caption属性分别为“保存到txt”,“读取到数组”;
【注1:在实际代码中应按照情况录入数据,此处录入list的方式仅供参考】
代码部分:
先输入“录入数据”的代码:
Private Sub Command1_Click()
List1.AddItem Text1.Text '在List1中添加一项,内容为Text1中的字符串
Text1.Text = "" '清空Text1中的数据
Text1.SetFocus '并设为焦点,方便用户输入
End Sub
然后输入“保存到txt”的代码:
Private Sub Command2_Click()
Dim Str As String
For i = 0 To List1.ListCount - 1
'使用For循环找出所有选中项,ListCount属性表示List中数据的项数但是List的Index是从0开始的,所以要减一
If List1.Selected(i) Then '如果项目被选中,则
Str = Str List1.List(i) vbCrLf '换行保存在Str中
End If
Next i
Str = Left(Str, Len(Str) - 2) '去除多余的换行符(由于使用vbcrlf,换行符占用2个字符,所以从左截取长度-2的数据)
Open "C:\VBList.txt" For Output As #1 '在C盘创建并开始编辑VBList.txt
Print #1, Str '写入
Close #1
End Sub
最后输入“读取到数组”的部分:
Private Sub Command3_Click()
Dim InputStr As String
Dim n As Long: n = 0
If Dir("C:\VBList.txt") "" Then '确定已有VBList.txt文件,防止Open语句出错
Open "C:\VBList.txt" For Input As #1 '打开并准备读取C盘下的VBList.txt文件
Do While Not EOF(1) '没有读取到文件尾时才会循环,防止input语句发生错误
n = n + 1
Line Input #1, InputStr '按行读取数据到InputStr中
ReDim Preserve Arr(1 To n) '重新定义数组Arr下标范围为1到n
Arr(n) = InputStr '读取到数组
Loop
End If
End Sub
④注意事项:
1、通过Listbox的list属性可以得知每一项的内容,但是需要注意的是list(Index)中的Index是从0开始的,而获得Listbox总项数的Listcount属性确是从1开始的,如果两者之间有联系,一定要-1
2、在使用open语句的input方法前一定要判断文件是否存在,否则就会出错,同样使用追加输入方法(Append)也需要判断
3、按行读取使用Do...Loop语句时,应当使用While判断而不是Until判断,因为While条件不满足的话,循环里面的语句一句都不会执行,而使用Until则至少执行一次。如果文件是空文件的话,使用Until会导致Input语句出错(指针超过文件尾)
4、保存到数组中时,可以把数组定义的大一点,但是建议先定义空数组然后使用redim,这样不会浪费存储空间。注意如果数组中已经有数据了,一定要加上Preserve关键字,否则之前的数据都会被重置。
如何读取数据表一列的数据到数组 VB.NET
不知道你数据表中那一列数据是什么类型的数据,所以我全部按字串来处理。
首先声明一个数组,和即将用来计数的数字:
dim nums() as string
Dim i As Integer = 0
mycon.open '然后,连接数据库,按你的声明来:
dim mycom as new sqlcommand("select * from 你要读取数据的表", mycon)'接下来,声明一个执行数据库语句命令的com:
'然后,对数据库返回的结果进行操作(一般会将执行结果存放起来,再操作,我这里省去了存放这步):
With mycom.ExecuteReader() '对返回的结果,即查询到的表进行操作
If .HasRows Then '判断是否有数据,有数据就进入下面进行读取
Do While .Read '读取一行数据
If Not (String.IsNullOrEmpty(.GetString(0))) Then '检查表列的数据是否为空,不为空就进入下面,进行保存。这里要说下getstring这个,是读取某列数据中的字串,如果该列数据不是字串,那么需要用getvalue(0),0代表该列在表中的位置,从0开始,即0表示第一列。
ReDim Preserve nums(i) '重置数组大小,即为即将要保存的数据准备一个位置
nums(i) = .GetString(0) '将数据放入到数组中
i = i + 1 '循环,直到结束
End If
Loop
End If
End With
mycon.close '最后记得要关闭数据库连接
数据存入数组很简单,其实难点是连接数据库,从数据库拿数据,这难点原理简单,但因为格式,数据类型等问题,很容易出错。
以上,数据到了数组,你应该会操作了吧。其实建议直接对从数据库返回的结果进行操作,不需要用数组的。
VB.NET 如何将ListBox列表框的所有项复制到一个数组中,便于排序?谢谢解答
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ListboxTotalItem As Integer = ListBox1.Items.Count - 1
Dim a(ListboxTotalItem) As String
For i As Integer = 0 To ListboxTotalItem
a(i) = i
Next
Label1.Text = a(5)
End Sub
End Class
-------------
一个Form1
一个Label1
一个Listbox1
一个Button1
在Listbox1中加入10个值
-------------
只是一个演示,其他的要靠自己。
vb 中如何返回列表框中的值给数组?
Private Sub Command1_Click()
Dim a() As String
ReDim a(List1.SelCount)
For i = 0 To List1.ListCount - 1
a(j) = List1.List(i)
Next i
For i = 0 To UBound(a) - 1
Debug.Print a(i)
Next i
End Sub
vb.net列表框转数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb列表框输出、vb.net列表框转数组的信息别忘了在本站进行查找喔。