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.