Я создаю программу, которая содержит список <> имен элементов 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
Если у вас есть какие-либо ссылки на источники о зацикливании больших файлов, они быбыть невероятно полезным в будущем