Перебор огромных файлов и поиск с использованием Regex (VB.NET) - PullRequest
0 голосов
/ 06 февраля 2019

Я создаю программу, которая содержит список <> имен элементов ItemNamelst, и мне нужно перебрать чрезвычайно большой файл (тестирую один с 173 тыс. Строк, но могу увеличить) и сравнить каждую строку в файле сопределите, находится ли Имя элемента в этой строке, и сохраните счет этого конкретного элемента.

Это становится проблемой времени из-за длины файла и количества элементов, которые я ищу (например, 247Предметы)

Единственное требование заключается в том, что мне нужно найти, когда Предмет появляется в файле, по крайней мере, 3 раза, и тогда я «закончу» в поисках этого предмета.

Яв настоящее время хранит количество экземпляров элемента в 2d массиве, 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

Если у вас есть какие-либо ссылки на источники о зацикливании больших файлов, они быбыть невероятно полезным в будущем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...