12.9.3. Усечение файлов

Процедура Truncate(VAR f) связана с прямым доступом в файлы, но с натяжкой. Просто она увязана с процедурой позиционирования Seek.

Назначение процедуры Truncate - «отсекать хвосты» открытого файла f. Вернемся к рис. 12.8. Если текущая позиция соответствует, например, границе 2, то вызовом  Truncate(f) будут удалены все идущие за ней записи с реальными номерами 3, 4, ... , FileSize(f), а сама граница 2 станет концевой.

Комбинация

Seek(f,0);  {установить в начало файла}

Truncate(f); {отсечь все за границей 0}

сделает файл f совершенно пустым. Граница 0 станет первой и последней.

После отсечения нельзя восстановить прежнюю длину (если только не создать все заново). Можно трактовать  Truncate как частичное стирание (Erase). С текстовыми файлами процедура  Truncate не работает.

Несколько слов о работе EOF(f) — функция анализа конца файла f. Как только текущая позиция совпадает с концевой границей (см. рис. 12.5), функция EOF(f) начинает возвращать при опросе значение True. Все остальное время она возвращает значение False.