Доброго времени суток, читатели, зрители моего канала programmer's notes.
Четыре индексных статьи, где ссылки на практически все статьи моего канала
К видео
Алгоритм 2. Удаление части файла
Рассмотрим задачу, которая очень похожа на задачу из предыдущего приложения. Там мы раздвигали файл, чтобы вставить фрагмент, а здесь наоборот, сдвинуть часть файла со стороны конца, чтобы удалить не нужный фрагмент. Сдвинуть часть файла ещё не вся задача — ведь файл должен стать короче. Но как раз это не сложно, если использовать метод объекта-файл truncate(). Метод укорачивает файл до указанной в качества параметра длины. Если параметр отсутствует, то удаляется часть файла после текущей позиции (усекается до текущей позиции). Понятно, что метод не будет работать, если файл открыт в режиме "только для чтения".
Полный вариант программы представлен по ссылке
Ниже представлена функция read_write2(), которая выполняет главную функцию: перемещает часть файла в сторону начала, так чтобы полностью закрыть указанный фрагмент.
На входе функции
- f — объект-файл над которым осуществляется операция;
- n1 — начало удаляемого фрагмента;
- n2 — конец удаляемого фрагмента;
- n3 — конец фрагмента, который будет сдвигаться, обычно это номер последнего байта;
- n — размер буфера, как обычно от 1 и более.
Остальная часть программы представлена ниже.
Как я и говорил, важную роль играет метод truncate(), который удаляет лишнюю часть файла в конце.
Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.