回 帖 发 新 帖 刷新版面

主题:如何逐行读取txt文件,每读一行就写入label并加以判断?

c盘下a.txt文件,内容为:
1
1
0
1
0
1
.........(行数不定,可能为2行,可能为5行,可能为10行,但最多15行)。

现窗体中有label1(0)~label1(14),竖向排列,每个label后有一个Shape,Shape编号与label编号相呼应,为Shape1(0)~Shape1(14),
现希望能把a.txt内容逐行显示到label1(n)中,同时判断该行如是“1”,则后面的Shape1(n)为红色,如是“0”,则Shape1(n)为绿色。一定要第几行与第几个Shape相对应。


或者简单点,去除label列,直接就是每读一行就加以判断,如是“1”,则Shape1(n)为红色,如是“0”,则Shape1(n)为绿色。一定要第几行与第几个Shape相对应。


不知如何编程,请各位前辈赐教!

回复列表 (共5个回复)

沙发

不清楚你的问题在哪里?请选择:
□ 1、不会读取文件数据;
□ 2、不会读取不定长的文件数据;
□ 3、不会让标签竖向排列;
□ 4、不会让形状和标签“相呼应”;
□ 5、不会将数据显示到标签;
□ 6、不会根据数据控制形状的颜色;

板凳


是第二项和第四项不会,其他几项自己可以解决,谢谢老大。

3 楼

我原来编写的程序是:
Private Sub Form_Load()
Dim i As Integer
Dim s As String
Open "c:\a.txt" For Input As #1
For i = 0 To 14 Step 1
Line Input #1, s
Label1(i).Caption = s
If s = "1" Then
Shape1(i).BorderColor = vbRed
Else
Shape1(i).BorderColor = vbGreen
End If
Next i
Close #1
当a.txt内数据行数大于等于14行的话,该段程序运行正常,也达到但是a.txt内数据行数不定,可能为2行,可能为5行,可能为10行,但最多15行,我就不知怎么写了,麻烦专家帮我修改一下程序,谢谢!

4 楼

比好意思,少写几个字,应是“该段程序运行正常,也达到我的要求,但是a.txt....”

5 楼

问题已解决:
For i = 0 To 14 Step 1
Line Input #1, s
Label1(i).Caption = s
If s = "1" Then
Shape1(i).BorderColor = vbRed
Else
Shape1(i).BorderColor = vbGreen
End If
Next i
修改为:
i=0
do while not eof(1)
Line Input #1, s
Label1(i).Caption = s
If s = "1" Then
Shape1(i).BorderColor = vbRed
Else
Shape1(i).BorderColor = vbGreen
End If
i=i+1
loop

我来回复

您尚未登录,请登录后再回复。点此登录或注册