24小时热门版块排行榜    

查看: 1415  |  回复: 6

阿什利扬

铁杆木虫 (知名作家)

[求助] 请问VB如何实现顺序读取文本文件中的数据,并将读取到的数据保存在二维数组呢 已有2人参与

现在有一组文本文件保存的数据(一个是8行3列),我想实现由VB顺序读取其中的每一个数据,然后保存到二维数组中,再由二维数组将数据添加到MSHFlexGrid控件的表格里,下面是我编的程序,但是最后只能读出第一行,恳请大家看看到底是哪出错了(最后希望读出的也是8行3列才对),谢谢大家!
程序如下:
Option Base 1
Private Sub Command1_Click()
Dim i As Long, j As Long, a() As Double
   Open "C:\Users\lenovo\Desktop\测试数据.txt" For Input As #1
        ReDim Preserve a(1 To 8, 1 To 3)
        For i = 1 To 8
            For j = 1 To 3
               Input #1, a(i, j)
          Next j
        Next i
     Close #1
   For i = 1 To 8
      For j = 1 To 3
        MSHFlexGrid1.TextMatrix(i - 1, j - 1) = a(i, j)
      Next j
   Next i
End Sub

请问VB如何实现顺序读取文本文件中的数据,并将读取到的数据保存在二维数组呢
1.jpg


请问VB如何实现顺序读取文本文件中的数据,并将读取到的数据保存在二维数组呢-1
2.jpg


请问VB如何实现顺序读取文本文件中的数据,并将读取到的数据保存在二维数组呢-2
3.jpg
回复此楼
海纳百川,有容乃大
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2014-10-04 14:05:31
我非常好奇,楼主的程序居然能读进去成为数组。我以前觉得读进去的文本文字内容没有分段,怎么能成为数组,我就试了一下。我先验证了一下是否真的生产了完整的数组,实现了转换。
加了textbox用了这个语句
    Text1.Text = ""
    For i = 1 To 8
        For j = 1 To 3
            Text1.Text = Text1.Text & Chr(9) & a(i, j)
        Next j
        Text1.Text = Text1.Text & Chr(13) & Chr(10)
    Next i
检验了一下,能出结果,说明楼主的文本到数组的转换是没有问题的。
我也不能在MSHFlexGrid1 中显示。我看了楼主的截图以后知道了问题所在。

需要用这个,就可以了。
Private Sub Form_Load()
    MSHFlexGrid1.Rows = 10   ' 指定表格的总行数
    MSHFlexGrid1.Cols = 4  '指定表格的总列数
End Sub
=====================

vb的人气太那个那个了,所以来凑个热闹。
2楼2014-10-03 20:41:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2014-10-04 14:05:48
Text1.Text 的属性不要忘记手动 预设 Text1.MultiLine的属性为 True。
3楼2014-10-03 20:44:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿什利扬

铁杆木虫 (知名作家)

引用回帖:
2楼: Originally posted by deephill at 2014-10-03 20:41:09
我非常好奇,楼主的程序居然能读进去成为数组。我以前觉得读进去的文本文字内容没有分段,怎么能成为数组,我就试了一下。我先验证了一下是否真的生产了完整的数组,实现了转换。
加了textbox用了这个语句
    Te ...

这个问题前几天已经解决,当时的错误显示基本上一直都是“下标越界”,后来我也是把控件的行列数改变之后就好了。VB相对于其他的语言好理解些,但是功能好像不太强大,用的人似乎也越来越少了,因此每每遇到问题都不方便求助,谢谢你的帮忙了
海纳百川,有容乃大
4楼2014-10-03 20:44:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

确实vb的人越来越少,不过现在vb出新版本了,不过我没有跟上。
个人觉得vb很适合我们这些用vb解决一些小问题的非计算机专业的人员。
希望以后多交流!
5楼2014-10-07 12:03:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿什利扬

铁杆木虫 (知名作家)

引用回帖:
5楼: Originally posted by deephill at 2014-10-07 12:03:54
确实vb的人越来越少,不过现在vb出新版本了,不过我没有跟上。
个人觉得vb很适合我们这些用vb解决一些小问题的非计算机专业的人员。
希望以后多交流!

6楼2014-10-07 12:05:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

york1996

新虫 (初入文坛)

【答案】应助回帖

Open CommonDialog1.filename For Binary As #1
    DoEvents
    hang = Split(Input(LOF(1), 1), vbCrLf)                                      'input(lof(1),1)是文件全部内容
    Close #1
   
   
   
    hangyuan = Split(hang(0), vbTab)
   
    ReDim yuansu(UBound(hang), UBound(hangyuan))
   
    For i = LBound(hang) To UBound(hang) - 1
hangy = Split(hang(i), vbTab)
        For j = LBound(hangyuan) To UBound(hangyuan)
            
            DoEvents
                                                 '存放行分裂
            yuansu(i, j) = Val(hangy(j))                                        '二维数组赋值完毕
            
            
        Next
    Next这样才能读到二维数组
7楼2016-03-03 20:12:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 阿什利扬 的主题更新
信息提示
请填处理意见