считать каждую строку, делать в ней реплейс и записывать куда надо, как вариант реплейс делать только в строках в которых в теории возможно наличие того что нужно заменить
это понятно, как изменить то конкретную строку?
берешь исходный файл, читаешь строку, меняешь в ней что нужно, пишешь в другой файл
Менять "на месте", без считывания целиком или временного файла вы сможете вменяемо только если ваша замена не меняет длины строк. Если то, что вы вставляете длиннее или короче заменяемого, вас ждёт увлекательный процесс перечитки и перезаписи всех байтов после замены
да это понятно, но даже со временным файлом без полного считываня что-то непонятно как
Прочитали строку, поменяли, записали в новый файл. Повторять, пока не удовлетворены. Если у вас замены на уровне отдельных строк, вам подойдёт
абстрактный алгоритм то понятен. но как это корректно сделать
это не абстрактный алгоритм) это практически псевдокод
а потом в любом случае все строки придется читать и писать во второй файл
ну около 5 мб файл. я чет просто до конца верил что есть какие-то уже готовые варинаты которые занимаются сами той любовью со смещением байтов
просто это некая костыль msbuild таска и надо чтобы она быстренько выполнялася
ты потратил больше времени на поиск "правильного" пути, чем если бы просто попробовал накидать код и замерить время выполнения
5 мб? Я не уверен, что служебные вещи дотнета меньше чем это.
вроде бы такой алгоритм есть
Считайте в память и не парьтесь
ну так и оставил, но почему-то я так верил что это весьма типовая задача и под это есть какое-то готовое супер решение. Я просто последний раз с файлами на лабах в универе работал
Ну готовые ридеры и врайтеры вполне себе решение, а уж как это все использовать слишком сильно зависит от каждой конкретной ситуации
Обсуждают сегодня