c# Удаление строк при чтение файла txt

Рейтинг: -3Ответов: 2Опубликовано: 13.01.2023

подскажите как можно при чтение текстового файла удалять прочитанные строки. Про варианты считать файл в память и перезаписать в курсе, пожалуйста не предлагать.

Ответы

▲ 0

Вариант с перезаписью... Вы в курсе, что для того, что бы увидеть содержимое файла, его нужно открыть? А для того, что бы его открыть, вам нужно его закинуть себе в оперативную память. Т.к. у вас не получится что-то удалить или что-то записать, или просто отобразить информацию не считывая её из файла.

Если вы хотите что-то оттуда удалить, то вам придется неким образом обновить ту информацию, которую вы уже закинули себе в ОЗУ (Считали данные из файла), т.е. удалить какие-то строки кодом. Как вы будете понимать, какие удалять, а какие нет - это ваша задача.

Если вам важно прям удаление некого содержимого, можете считать всё в List<> а потом использовать метод .Remove()

А для того, что бы вам сохранить ту информацию, которую вы неким образом обновили или обработали, вам нужно будет куда-то её записать.

▲ 0

Есть вариант сделать файл постоянного размера и циклически его перезаписывать. Файл состоит из записей постоянного размера, рассчитанного на самую длинную строку. В этом случае ничего удалять не нужно. Использовать два указателя - на последнюю записанную строку и на последнюю прочитанную.

Немного усложнив алгоритм, можно предусмотреть возможность увеличения размера файла, а так же разбивку строки на несколько записей.

Если жалко места, то можно отдельно индекс сделать.