我在D:\test目录里,有一个文本文件tiku.txt,它是一个汽车驾驶考试的题库的一部分, 我只取了4条题目,做一个演示。题库内容如下:
1驾驶机动车在道路上违反道路交通安全法的行为,属于什么行为?~过失行为~违规行为~违章行为~违法行为~4~
2未取得驾驶证的学员在道路上学习驾驶技能,下列哪种做法是正确的?~使用所学车型的教练车由教练员随车指导~使用所学车型的教练车单独驾驶学习~使用所学车型的教练车由非教练员的驾驶人随车指导~使用私家车由教练员随车指导~1~
3前方路口这种信号灯亮表示什么意思?~准许通行~提醒注意~路口警示~禁止通行~4~9.png
4驾驶人出现下列哪种情况,不得驾驶机动车?~记分达到10分~记分达到6分~驾驶证丢失、损毁~驾驶证接近有效期~3~
同时,在D:\test目录里,还有一个“BMP”子目录,我保存有一张图片,名为:9.png,因为我下一篇文章,会以这篇文章为基础,做一个文本文件为基础的数据库。
在Visual studio 2022环境中,先拖一个按钮,和一个文本框到窗口里,文本框设置为多行,即:TextBox1.Multiline = True
以下是全部代码:
Imports System.IO
Public Class Form1
Dim SList() As String '先定义一个数组,用来保存题库
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim FilePath As String = "D:\test\tiku.txt"
If Dir(FilePath) = "" Then
MsgBox("没有找到tiku.txt文件",, “提示”)
Exit Sub
End If
Dim LineN As Integer = File.ReadAllLines(FilePath).Length ' 得到文本文件的总行数
ReDim SList(LineN - 1) '定义数组大小,大小就根据文本文件的总行数来确定
Dim I As Integer
Dim Str1 As String '读出一行的文本
I = -1 '初始值
FileOpen(1, FilePath, OpenMode.Input)
Do While Not EOF(1)
Str1 = LineInput(1) ' 读一行
I = I + 1
SList(I) = Str1 '把读出的一行加入到数组里
Loop
FileClose(1)
MsgBox(SList(0)) ' 分别报出4条题目,以确认数组读入是否正确
MsgBox(SList(1))
MsgBox(SList(2))
MsgBox(SList(3))
MsgBox("一共有记录:" & UBound(SList) + 1) '看看数组的记录数,看看是否跟文本的行数相一致
TextBox1.Text = ""
For index = 0 To UBound(SList)
TextBox1.Text = TextBox1.Text & SList(index) & vbCrLf
Next
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TextBox1.Multiline = True '文本框可多行显示
End Sub
运行结果如下:
说明:
- 先使用System.IO命名空间中的File类来获取文本文件的行数;然后,根据获取的行数来定义数组的大小。
- 再用循环语句,把每读出的一行内容加入到数组里。
- 最后用Msgbox语句来看看是否正确把第一行读出来。(记录少,可以这样做)
- 再用文本框来显示一下题库的文本内容。
最后,还有一点要说明,题库tiku.txt编码格式要保存为UTF-8
把文本的内容按行的内容加入到数组的代码已经做出,下一篇文章就在此基础上,做出:到第一条记录,到最后一条记录,上一条记录,下一条记录,到任意一条记录 等功能,算是做一个简单的数据库功能。