VB中如何将文件中的多行内容按行显示在文本框中?注意,是多行内容的文件,不是要文本框显示多行内容!
PrivateSubForm_Load()DimaAsStringCommonDialog1.ShowOpenOpenCommonDialog1.FileNameForI...
Private Sub Form_Load()
Dim a As String
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, a
Text1.Text = a
Loop
'Text1.Text = a
Close #1
End Sub
打开单行文本内容的文件,文本框能显示;打开多行文本内容的文件就不行了,什么也没显示。注:Text1的Multiline属性已经设为True,ScrollBars属性为2。
测试时打开的文件:E:\Users\Administrator\Documents\ss.txt
文件内容:
========================(此处开始,此行不算)
1 2 2 0
2 2 2 1
3 2 2 2
4 2 2 3
……
287 7 7 8
288 7 7 9
=========================(此处结束,空行也算,此行不算) 展开
Dim a As String
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, a
Text1.Text = a
Loop
'Text1.Text = a
Close #1
End Sub
打开单行文本内容的文件,文本框能显示;打开多行文本内容的文件就不行了,什么也没显示。注:Text1的Multiline属性已经设为True,ScrollBars属性为2。
测试时打开的文件:E:\Users\Administrator\Documents\ss.txt
文件内容:
========================(此处开始,此行不算)
1 2 2 0
2 2 2 1
3 2 2 2
4 2 2 3
……
287 7 7 8
288 7 7 9
=========================(此处结束,空行也算,此行不算) 展开
5个回答
展开全部
其实你这个真的是非常简单的事了。
你说“打开单行文本内容的文件,文本框能显示;打开多行文本内容的文件就不行了,什么也没显示。”,其实不管单行文本还是多行文本 都已经显示了,但为什么多行文本你感觉没显示:是因为你的代码“Text1.Text = a”在do循环中每次只显示一行、而且是最后一行,恰巧你的多行文本的最后一行是空行(但也认是一行),所以就出现你的错误的感觉“没显示”了。
解决的方法:楼上很多人都说了,就是最关键的那句,将Text1.Text = a改成:
Text1.Text=Text1.Text & a & vbcrlf
即可解决你的问题啦。当然,这样是最直观的、但数据量巨大时会感觉显示的速度变慢,要快点的方法就是楼上那位xiaoyuemt所说的第二个方法:
dim s as string
Do While Not EOF(1)
Line Input #1, a
s = s & a & Chr(13) & Chr(10)
Loop
Text1.Text = s
Close #1
上面代码中Chr(13) & Chr(10)其实就等同于 vbcrlf ,代表换行。
你说“打开单行文本内容的文件,文本框能显示;打开多行文本内容的文件就不行了,什么也没显示。”,其实不管单行文本还是多行文本 都已经显示了,但为什么多行文本你感觉没显示:是因为你的代码“Text1.Text = a”在do循环中每次只显示一行、而且是最后一行,恰巧你的多行文本的最后一行是空行(但也认是一行),所以就出现你的错误的感觉“没显示”了。
解决的方法:楼上很多人都说了,就是最关键的那句,将Text1.Text = a改成:
Text1.Text=Text1.Text & a & vbcrlf
即可解决你的问题啦。当然,这样是最直观的、但数据量巨大时会感觉显示的速度变慢,要快点的方法就是楼上那位xiaoyuemt所说的第二个方法:
dim s as string
Do While Not EOF(1)
Line Input #1, a
s = s & a & Chr(13) & Chr(10)
Loop
Text1.Text = s
Close #1
上面代码中Chr(13) & Chr(10)其实就等同于 vbcrlf ,代表换行。
展开全部
Text1.Text = a 这一行改为
text1.text=text1.text & a
========================
改成这样会将显示的文本也分行显示。
dim s as string
Do While Not EOF(1)
Line Input #1, a
s = s & a & Chr(13) & Chr(10)
Loop
Text1.Text = s
Close #1
text1.text=text1.text & a
========================
改成这样会将显示的文本也分行显示。
dim s as string
Do While Not EOF(1)
Line Input #1, a
s = s & a & Chr(13) & Chr(10)
Loop
Text1.Text = s
Close #1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-05
展开全部
你要打印到文本框中?不知道你说的 prnt(x,y)是不是你定义的一个函数,vb里应该没有这个方法的,如果你要按自己的格式打印到文本框 text1中,可按下面代码打印的方法做你的东西。
Private Sub Command1_Click()
Text1.Text = "我"
Private Sub Command1_Click()
Text1.Text = "我"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把text1的属性设置为多行(multiLine)
然后把text1=a改为text1=text1+a+vbcrlf '最后这个vbcrlf是换行符
然后把text1=a改为text1=text1+a+vbcrlf '最后这个vbcrlf是换行符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Text1.Text=Text1.Text & vbcrlf & a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询