vb如何随机读取txt中任意一行的内容,然后输出到Text1.Text?

详细解释:
在D:\123.txt下有个txt文件,文件里面有很多行内容!如何随机读取一行后将内容输出到Text1.Text?(用按钮触发事件)

Dim xx() As String, aa As Integer

Private Sub Command1_Click()
Text1.Text = ""   '清空文本框,这样可以多次点击按钮得到不同的内容
Dim zz As Integer
Randomize
zz = Int(Rnd * aa + 1)     '得到一个随机数
Text1.Text = xx(zz)   '在文本框显示随机数的一行
End Sub

Private Sub Form_Load()
Dim PPP As String
Open "E:\VB事件简介.txt" For Input As #1     '打开E:\VB事件简介.txt文件,可以修改为你的文件路径+文件名+扩展名
Do While Not EOF(1)    'DO循环
Input #1, PPP
aa = aa + 1    '得到文件的行数
Loop
Close #1   '关闭文件
ReDim xx(1 To aa)   '重新定义数组的下标
Dim yy As Integer
Open "E:\VB事件简介.txt" For Input As #1     '打开E:\VB事件简介.txt文件,可以修改为你的文件路径+文件名+扩展名
Do While Not EOF(1)    'DO循环
yy = yy + 1
Input #1, PPP
xx(yy) = PPP & vbCrLf    '将各行分别存储在数组xx中
Loop
Close #1   '关闭文件
End Sub

追问

大赞

不小心把错误答案给采纳了,抱歉

你这个是真的可以做到随机

我要学习学习

你也帮了我的大忙

追答

根据这个代码,你自己可以使用 InpuyBox 输入框显示你需要的行数的内容。
选错没关系,只要解决了你的问题就好了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-23
Public Function StrLoad(paths As String) As String
Open paths For Input As #1
Dim Lines As String
Dim NextLine As String
Do While Not EOF(1)
On Error Resume Next
Line Input #1, NextLine
Lines = Lines & NextLine & Chr(13) & Chr(10)
Loop
Close #1
StrLoad = Lines
End Function

Private Sub Command1_Click()
Text1=Split(StrLoad("D:\123.txt"),vbcrlf)(Int(Rnd*Ubound(Split(StrLoad("D:\123.txt"),vbcrlf))))
End Sub追问

好,让我试试

你这个不行啊!每次启动,抽到的东西是有规律的,比如说启动后第一次抽签显示第六行内容,重启软件后第一次抽签还是第六行的内容。
还是楼下的好

本回答被提问者采纳
相似回答