Console VB.NET:文件处理 - 搜索特定数字和输出记录的文件

时间:2013-01-26 21:17:42

标签: vb.net visual-studio-2010 console procedural-programming file-processing

您好我正在VB.NET中构建一个控制台应用程序,它读取记录文件并将其输出给用户。我已经让程序将所有记录输出到控制台,但我似乎无法使搜索功能正常工作。

我希望用户输入记录号,并让程序在文本文件中搜索该特定记录,然后将其输出到控制台。

我将把读取记录功能留在这里作为参考。

读取记录功能:

Public Function Read_Records()

    File_Name = "drecords.txt"
    File_num = FreeFile()
    Record_Counter = 0
    record_no = 999

    If File_Name <> "" Then
        Try
            FileOpen(File_num, File_Name, OpenMode.Input)
            Do Until EOF(File_num)
                Record_Counter = Record_Counter + 1
                record_no = record_no + 1
                records(Record_Counter, 0) = record_no
                records(Record_Counter, 1) = LineInput(File_num)
                records(Record_Counter, 2) = LineInput(File_num)
                records(Record_Counter, 3) = LineInput(File_num)
                records(Record_Counter, 4) = LineInput(File_num)
                records(Record_Counter, 5) = LineInput(File_num)

            Loop
            record_ID = Record_Counter

        Catch ex As Exception
            MsgBox("ERROR OPENING FILE")
        Finally
            FileClose(File_num)
        End Try
    End If
    Last_Record = Record_Counter

    Return records

End Function

1 个答案:

答案 0 :(得分:1)

我不确定你想要什么,但这里有一些例子。

要从控制台读取记录编号并输出该记录,请执行以下操作:

dim i, k as integer
k = val(console.readline())
for i = 1 to 5
  console.writeline(records(k, i))
next i

我不确定您是如何识别记录的,但是,例如,您可以在第一个字段中搜索记录中的“abc”值,如下所示:

For i = 1 to Last_Record
  if records(i, 1) = "abc" then
    ' output the record to the user
  end if  
next i

records(i, 1)替换为records(i, 0)以搜索记录编号。

如果要搜索每个字段,可以添加嵌套循环:

For i = 1 to Last_Record
  for k = 1 to 5
    if records(i, k) = "abc" then
      ' output the record to the user
    end if  
  next k
next i