В файлах прямого доступа все записи имеют одинаковую длину.
Когда указатель файла перемещается по позициям, номера которых кратны длине
записи, он всегда указывает на начало очередной записи. Для работы с файлами
прямого доступа обычно используются встроенные предикаты openmodify и filepos.
Предикаты openwrite
и closefile создают
файл, который первоначально пустой. Openmodify открывает файл для его модификации (записи данных). Readln читает первую строку
данных с клавиатуры, а предикат write_read_more записывает считанные строки в файл
и читает новые. Рекурсивное правило write_read_more дополняет строку до 38
символов, сцепляет ее с комбинацией спецсимвола, определяющего конец строки и
записывает полученную строку в файл.
Filepos
увеличивается на 40 перед очередным кругом рекурсии, благодаря чему каждый раз
перед занесением новой записи помещается в нужное место. Рекурсивное правило
испоьзует правило pod_string для дополнения строки
"-”. Это правило выглядит так: