遍历大文件并使用Regex(VB.NET)搜索

时间:2019-02-06 03:14:52

标签: arrays regex vb.net loops streamreader

我正在创建一个程序,其中包含项名称为ItemNamelst的List <>,并且我需要遍历一个非常大的文件(使用173k行测试一个文件,但是可以更大),并比较文件来确定项目名称是否在该行中,并存储该特定项目的计数。

由于文件的长度和我要搜索的项数(这是247个项),这成为一个时间问题

唯一的要求是,我必须找到某项至少在文件中出现3次的时间,然后我“完成”搜索该项。

我当前将物品的出现次数保存在二维数组arrItemCount(Name, Count)

以下是一些示例代码:

While Not SR.EndOfStream
        strTemp = SR.ReadLine()
        intC1 += 1 'counter

        For i = 0 To ItemNamelst.Count() - 1
            'Loop through parts and increment count in arrItemCount
            'if part matches the regex

            Dim pattern = "(^|\W)" & ItemNamelst(i) & "($|W|:)" 'RegEx pattern

            If Regex.IsMatch(strTemp, pattern) Then
                'increment count value
                arrItemCount(0, i) = (Integer.Parse(arrItemCount(0, i)) + 1).ToString()
            End If
        Next
End While

如果您有任何有关循环播放大文件的资源的链接,它们将对您的工作产生极大的帮助

0 个答案:

没有答案