1

こんにちは私は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
4

1 に答える 1

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
于 2013-01-26T23:56:40.123 に答える