«ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ»
ЛАБОРАТОРНАЯ РАБОТА №7
«Файловая система Visual Prolog и обработка строк»
Теория:
Обычно файлом называют именованную (то есть имеющую имя) совокупность данных, записанных на диске. Файл
состоит из компонентов (элементов). При чтении или записи файловая переменная перемещается к очередному компоненту и
делает его доступным для обработки.
Для работы с файлом используют следующие встроенные предикаты:
FILEPOS ( X , Y , Z )
Содержимое файла можно рассматривать как поток компонентов. Каждый компонент файла находится на какой-то позиции.
Для того чтобы узнать текущую позицию чтения или записи в файле, либо для того, чтобы изменить эту позицию, служит
предикат filepos.
У него три аргумента. Первый аргумент — это символическое имя файла, второй — позиция внутри первого аргумента,
которую нужно узнать или установить, третий — номер режима, который задает, откуда отсчитывается позиция.
Номер режима может принимать одно из трех значений: ноль, единица или двойка.
Если он равен нулю, то позиция считается от начала файла. Если он равен единице, позиция отсчитывается от текущей
позиции. Этот режим имеет смысл только при означенном втором аргументе, когда предикат используется для изменения
текущей позиции. Потому что если второй аргумент предиката не был означен, а третий аргумент равен единице, то во
второй аргумент будет помещен ноль. Смещение текущей позиции чтения или записи в файле относительно текущей
позиции, естественно, равно нулю. Если же третий аргумент равен двойке, то позиция отсчитывается от конца файла.
Предикат может быть использован двояко. Если все три его аргумента связаны, то позиция, из которой осуществляется
чтение или в которую производится запись, будет изменена в соответствии с числом, которым означен второй аргумент.
Если его второй аргумент свободен, а первый и третий связаны, то второй аргумент будет означен текущей позицией чтения
или записи.
FILE_STR( X , Y )
Целиком читает символы файла Х в строку Y или, наоборот, записывает содержимое строки в файл, в зависимости от того,
свободен ли второй параметр этого предиката. Первым входным параметром этого предиката является символическое имя
файла, а вторым — строка, в которую считывается содержимое файла или из которой записывается информация в него.
EOF ( X )