1

我有一个包含 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 Socks,01/01/2008,1 SocksSupplier,1 Socks 供应地址,1 Socks phone,1 Socks@socks.com Supp2,2 Pink,2 Shoes,01/05/2009,2 ShoesSupplier,2鞋子供应地址,2 鞋子供应电话,2 Shoes@shoes.com Supp3,3 红色,3 Bag,04/03/2009,3 BagSupplier,3 Bag 供应商地址,3 Bag 供应电话,3 bags@bags.com Supp4, 4 Gren,4 Tie,05/03/2007,4 TieSupplier,4 Tie 供应商地址,4 Tie 供应电话,4 tie_supp@ties.com Supp5,5 Grey,5 Suit,13/05/2009,5 SuitSupplier,5 Suit供应商地址,5 西装供应电话,5 suitsupp@suits.com Supp6,6 黑色,6 裙子,14/05/2008,6 SkirtSupplier,6 裙子 供应商地址,6 裙子供应电话,6skirtsupp@skirts.com

4

0 回答 0