8 つのフィールドと複数のレコードを含む csv ファイルがあります。テキスト ボックスに検索語を入力して ID フィールド (最初のフィールド) を検索し、一致するレコードを見つけて、VB フォームの複数行のテキスト ボックスに完全なレコードを表示したいと考えています。また、日付で検索して、2009 などの特定の年で終わるすべての日付を検索し、一致するすべての完全なレコードを返したいと思います。以下のコードでこれまでのところ、ファイル内のすべてのデータを返すことができますが、検索を実行できませんでした。コメントアウトされた IF ステートメントを試しましたが、機能しませんでした。サンプル CSV は、以下のコードに従います。どんな助けでも素晴らしいでしょう。ありがとう。
Imports System.IO
Public Class Form1
Private Sub btnSearchName_Click(sender As System.Object,...
Dim fileIn As String
Dim fileRows(), fileFields() As String
fileIn = "C:\SuppliersSearch_Test\suppliers.csv"
Label1.Text = String.Empty
If IO.File.Exists(fileIn) Then
Dim fileStream As StreamReader = File.OpenText(fileIn)
fileRows = fileStream.ReadToEnd().Split(Environment.NewLine)
For i As Integer = 0 To fileRows.Length - 1
fileFields = fileRows(i).Split(",")
If fileFields.Length >= 8 Then
' ?? loop to see if field0 contains the inputted surname, return the record
'then check the next record until ALL records checked and matching ones returned
‘ if fileFields(0) = txtSearch.text then
txtResults.Text += fileFields(0) & ", " & fileFields(1) & ", " & fileFields(3) & ", " & fileFields(4) & ", " & fileFields(5) & ", " & fileFields(6) & ", " & fileFields(7)
End If
Next
Else
txtResults.Text = fileIn & " not found."
End If
End Sub
End Class
CSV データのサンプル。わかりやすくするために、各レコードは「.com」で終わります。
Supp1,1 ブルー,1 ソックス,01/01/2008,1 SocksSupplier,1 Socks supp アドレス,1 Socks phone,1 Socks@socks.com Supp2,2 ピンク,2 Shoes,01/05/2009,2 ShoesSupplier,2シューズサップアドレス,2 シューズサップ電話番号,2 Shoes@shoes.com Supp3,3 赤,3 バッグ,04/03/2009,3 BagSupplier,3 バッグサプライヤーアドレス,3 バッグサップ電話番号,3 bags@bags.com Supp4, 4 Gren,4 Tie,05/03/2007,4 TieSupplier,4 Tie Supplier address,4 Tie supp phone,4 tie_supp@ties.com Supp5,5 Grey,5 スーツ,13/05/2009,5 SuitSupplier,5 スーツサプライヤの住所,5 スーツの電話番号,5 suitupp@suits.com Supp6,6 ブラック,6 スカート,14/05/2008,6 スカートのサプライヤ,6 スカートのサプライヤの住所,6 スカートの電話番号,6 skirtsupp@skirts.com