标题:VB 读取TXT的内容到程序赋予数组
只看楼主
bailikai
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-10-9
结帖率:0
已结贴  问题点数:20 回复次数:3 
VB 读取TXT的内容到程序赋予数组
下面是TXT里面内容,格式,行数可能不定,8列,如何读取到程序中,赋予数组值
 1             0             0             1             0             2             1             0
 1             0             0             1             0             2             2             1
 1             0             0             1             0             2             3             1
 1             0             0             1             0             2             3             2
 1             0             0             1             0             3             3             2
 1             0             0             1             1             2             1             0
 1             0             0             1             1             3             2             1
 1             0             0             2             0             1             1             0
 1             0             0             2             0             1             3             1
 1             0             0             2             0             2             2             1
 1             0             0             2             0             3             1             0
 1             0             0             2             0             3             2             0
 1             0             0             2             0             3             3             1
 1             0             0             2             1             1             2             1
 1             0             0             2             1             2             2             0
 1             0             0             3             0             2             2             0
 1             0             0             3             0             2             3             1
 1             0             0             3             0             3             3             2
 1             0             0             3             1             2             2             0
 1             0             0             3             1             2             2             1
 1             0             0             3             1             2             3             1
 1             0             0             3             1             3             2             0
 1             0             1             0             0             1             2             0
 1             0             1             0             0             2             1             0
 1             0             1             0             0             2             3             0
 1             0             1             0             0             2             3             1
 1             0             1             0             0             2             3             2
 1             0             1             0             0             3             3             2
 1             0             1             0             1             1             2             1
 1             0             1             0             1             2             1             0
 1             0             1             0             1             3             3             2
 1             0             1             1             0             1             2             1
 1             0             1             1             0             1             3             2
 1             0             1             1             0             2             3             1
 1             0             1             1             0             2             3             2
 1             0             1             1             0             3             2             1
 1             0             1             1             0             3             3             2
 1             0             1             1             1             1             3             2
 1             0             1             1             1             3             2             1
 1             0             1             1             1             3             3             2
 1             0             1             2             0             1             1             0
 1             0             1             2             0             1             2             1
 1             0             1             2             0             1             3             0
 1             0             1             2             0             1             3             1
 1             0             1             2             0             2             1             0
 1             0             1             2             0             2             2             1

搜索更多相关主题的帖子: VB 读取 TXT 内容 数组 
2017-10-09 21:24
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:7 
如果格式不定,就只有通过代码过滤了。如果格式固定则可以使用split函数。
2017-10-10 04:11
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:7 
同意楼上版主,
1. Split拆分之后找出非空内容就是
2. 固定宽度,可以用trim和mid来实现
2017-10-10 08:47
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:7 
应该不是特别复杂,看图

首先在通用部分声明模块级数组与变量:
Dim AA() As String, BB() As String, X As Integer

在启动过程中将各行数据存储到AA数组中:
程序代码:
Private Sub Form_Load()
Dim A As String
Open App.Path & "\123.txt" For Input As #1
Do While Not EOF(1)
    X = X + 1      'X是得到总行数
    Input #1, A
Loop
Close #1
ReDim AA(1 To X), BB(1 To 8, 1 To X)       '定义AA、BB数组的上标与下标
X = 0   '初始化X变量
Open App.Path & "\123.txt" For Input As #1
Do While Not EOF(1)
    X = X + 1      'X是得到总行数
    Input #1, AA(X)     '首先将各行数据存储到AA数组中
Loop
Close #1
'=================================
MSHFlexGrid1.Clear
MSHFlexGrid1.Visible = True
With MSHFlexGrid1
    .Cols = 9
    .Rows = 2
    .TextMatrix(0, 0) = "序号"
    For I = 1 To 8
    .TextMatrix(0, I) = "" & I & ""
    Next I
    For I = 0 To 8
    .ColWidth(I) = 800
    Next I
End With
'=========以上是初始化MSHFlexGrid1控件==============
End Sub

点击【解析到数组】按钮的代码:
程序代码:
Private Sub Command1_Click()
'解析到数组
Dim PP
For I = 1 To X
PP = Split(AA(I), Space(4), -1, 1)   '这个 Space(4) 根据你的文件中的空格不同,设置应该不同,取最小的空格述,但必须最小空格数的二倍,大于最大空格数,例如本例最大空格数是7个
For J = 1 To 8
BB(J, I) = Trim(PP(J - 1))        '将Split后的数据存储到BB数组中
Next J
Next I
MSHFlexGrid1.Clear
MSHFlexGrid1.Visible = True
With MSHFlexGrid1
    .Cols = 9
    .Rows = 1 + X
    .TextMatrix(0, 0) = "序号"
    For I = 1 To 8
    .TextMatrix(0, I) = "" & I & ""
    Next I
    For I = 0 To 8
    .ColWidth(I) = 800
    Next I
    For I = 1 To X
    .TextMatrix(I, 0) = I
    For J = 1 To 8
    .TextMatrix(I, J) = BB(J, I)   '在MSHFlexGrid1控件加载显示BB数组的数据
    Next J
    Next I
End With
End Sub

程序中将数组定义为字符型数据是为了适应一般文本文件的数据格式。
“行数可能不定,8列”,根据你的要求,列数是8列,行数是根据文本文件的行数确定的。
123.rar (583 Bytes)
这个是文本文件。

请不要选我!!!
2017-10-10 10:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481220-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091067 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved