0

ユーザーがリストボックスの別のフォームで見たい情報を書き込むフォームを作成する方法を見つけようとしています。基本的に、ユーザーは必要な詳細 (タイトル、著者、株式、価格、フィクションまたはノンフィクション) を書き込んでから、レコードの詳細を押すと、プログラムがテキスト ファイルでそれらの値を検索し、別のフォームが表示されます。選択したすべての本が表示されるリストボックス。

これは私がこれまでに持っていたコードで、基本的にテキストファイル情報を読み取り、それを配列に保存します:

    Dim Title As String
    Dim Author As String
    Dim Stock As Integer
    Dim Price As Double
    Dim Fiction As String
    Dim NonFiction As String

Private Sub btnRecord_Click(sender As System.Object, e As System.EventArgs) Handles btnRecord.Click


    ''Read the information into a string''
    Dim objReader As New StreamReader("C:\Users\Books.txt")
    Dim fileString As String = objReader.ReadToEnd()
    objReader.Close()
    objReader.Dispose()

    ''Concert string into array''
    Dim Array As Char() = fileString.ToCharArray()
    Array(0) = CChar("BookName")

    ''Declare the string to hold the value''
    Dim resultString As String = ","

    ''Increment each item in the string''
    Dim curChar As Char
    For i As Integer = 0 To (Array.Length - 1)
        curChar = Array(i)
        If (Char.IsLetterOrDigit(curChar)) Then
            Array(i) = Chr(Asc(curChar) + 1)
        End If
    Next

    ''Conver the array back to string''
    Dim newString As String = New String(Array)

    ''Hide the details form when book inventory runs''
    Me.Hide()

    ''display inventory form''
    frmInventory.Show()

End Sub
4

1 に答える 1

0

明確にするために、ユーザーは

Dim Title As String Dim Author As String Dim Stock As Integer Dim Price As Double Dim Fiction As String Dim NonFiction As String

次に、データを検索してファイル「C:\ Users \ Books.txt」を実行しますか?

なぜなら、あなたがすべての本をテキストファイルに追加した人であり、各本を同じプロパティを持つ独自の行に配置したと仮定するからです。

本のタイトル、著者、価格など次の本、....など

それならなぜあなたがこのようなことをしないのか分かりません...

  'Storing All Book Information Into One Object
   Public Structure BookDetails
       Dim Title As String
       Dim Author As String
       Dim Stock As Integer
       Dim Price As Double
       Dim Fiction As String
       Dim NonFiction As String
     End Structure
   sub ... 
    Dim theObjContents as new ArrayList
   Using objReader as new StreamReader("C:\Users\Books.txt")


    while objReader.endofstream = false
      theObjContents.add(objReader.readline)
    end while

   End Using        

    For each line in theObjContents
   'Check what you want
       if bookdetails.Title = line.split(whatever your delimiting character is").item(0)

    next
 end sub

それが何かに答えるかどうかはわかりませんが、私があなたが望んでいたことを完全にやめているかどうか教えてください。

于 2012-10-24T09:04:31.297 に答える