注册 登录
编程论坛 VB6论坛

VB 读取TXT的内容到程序赋予数组

bailikai 发布于 2017-10-09 21:24, 2254 次点击
下面是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

3 回复
#2
xzlxzlxzl2017-10-10 04:11
如果格式不定,就只有通过代码过滤了。如果格式固定则可以使用split函数。
#3
xiangyue05102017-10-10 08:47
同意楼上版主,
1. Split拆分之后找出非空内容就是
2. 固定宽度,可以用trim和mid来实现
#4
ZHRXJR2017-10-10 10:39
应该不是特别复杂,看图
只有本站会员才能查看附件,请 登录

首先在通用部分声明模块级数组与变量:
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列,行数是根据文本文件的行数确定的。
只有本站会员才能查看附件,请 登录
这个是文本文件。
1