四时宝库

程序员的知识宝库

vb.net一行行把文本文件读出来,保存到一个数组里

我在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

运行结果如下:

说明:

  1. 先使用System.IO命名空间中的File类来获取文本文件的行数;然后,根据获取的行数来定义数组的大小。
  2. 再用循环语句,把每读出的一行内容加入到数组里。
  3. 最后用Msgbox语句来看看是否正确把第一行读出来。(记录少,可以这样做)
  4. 再用文本框来显示一下题库的文本内容。

最后,还有一点要说明,题库tiku.txt编码格式要保存为UTF-8

把文本的内容按行的内容加入到数组的代码已经做出,下一篇文章就在此基础上,做出:到第一条记录,到最后一条记录,上一条记录,下一条记录,到任意一条记录 等功能,算是做一个简单的数据库功能。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接