Есть такой текст:
[Restrict]
Nod=40
TraffPoints=39,40,39
TraffRoads=10,10
Time=
[END-Restrict]
[POLYLINE]
Type=0x1
EndLevel=2
RoadID=58
Data0=(50.46900,30.49562),(50.47145,30.50012),(50.47118,30.50743),(50.47354,30.51049)
Nod1=0,48,0
Nod2=3,47,0
[END]
[POLYLINE]
Type=0x1
EndLevel=2
RoadID=59
Data0=(50.47232,30.48033),(50.47263,30.48692),(50.47328,30.49340),(50.47251,30.49730)
Nodes0=(0,49),(3,50)
[END]
И вот такого текста около 70мб
Требуется найти в этом тексте все выделенные жирным Nod1=0,48,0 и TraffPoints=39,40,39 и перенумеровать эти числа по порядку от заданого числа.
Все что я придумал в VB.NET:
1. Загружаю в переменную файл
2. Прохожу регекспом нахожу и создаю сортированный массив Generic.List с уникальными номерами
3. Разрезаю файл-переменную по 10мб чтобы не ругался на нехватку памяти при изменениях
4. Перебираю массив и регекспом меняю в тексте найденные из массива числа
5. сливаю в файл куски
При таком подходе файл в 70мб обрабатывается в течении 10-12 часов
Может есть какой способ делать это быстрее средствами VB?