Часть полного текста документа:Организация работы с файлами в системе "ТУРБО-ПРОЛОГ" 1. Определение файлов. В П. используются традиционное для других языков программирования определение файла. Для указания порядка работы с конкретными файлами в пр-ме, исп-ся символическое имя файла. В системе приняты след. станд. имена файлов, с кот. м. работать в программах без предв. описания. 1.Входной с экрана дисплея keyboard 2.Выходная форма на экран screen 3.Вых. ф-ма на устройство печати printer 4. - " - на порт com1 По умолчанию наз-ся файлы (1) и (2). Для переопределения стандартных файлов и файлов пользователя исп-ся станд. предикаты readdevice (< символьное имя файла>) (file):(i) writedevice ПРИМЕР readdevice (printer), write ("Работа завершена"), readdevice (screen), ... Файлы пользователя в П. м. представлять собой как Д. так и факты в виде предикатов, при этом 1-я запись файла д. соответствовать 1-му предикату-факту. 2. Порядок работы с файлами пользователя в программах следующие: 1.Определение символьного имени файла 2.Открытие соответствующего вида доступа 3.Определение или переопределение уст-ва, используемого для обработки файла 4.Закрытие файла после обработки с возможным переопределением устройств ввода-вывода Для определения символьного имени в П. используется стандартный домен file, определенный в разделе domaines. Символьное имя м. совпадать, а м. не совпадать с его именем в ОС. Символьное имя действует также в пределах той пр-мы, кот. его описывает. В зависимости от порядка работы с файлом, его открытие м производиться с помощью след. стан. предикатов: OPENWRITE( < сим. имя файла>, < имя файла в ОС>) ( file, string):( i,i) - открывает файл с указаным именем для операции записи. Если этот файл реально существует под указаным именем в среде ОС, то он уничтожается. OPENREAD( < сим. имя файла >,< имя файла в ОС >) ( file, string):( i,i) - открывает файл с указаным именем для чтения OPENAPPEND ()( file, string):( i,i) - открывает файл для дозаписи. Если при использовании предиката OPENREAD и OPENAPPEND файл не найден, то это интерпр. как ошибка. Если при использовании предикатов OPENWRITE и OPENMOCLIFY файл не найден, то происходит создание нового файла. Для проверки наличия файла в П. имеется след. стан. предикат: EXISTEFILE() ( string):( i) Если файл с указанным именем не сущ., то предикат принимает значение .t., если нет- ложь. Переопределение устройств для работы с файлами пользователя производится с помощью readdevice и writedevice FILE_STR (< имя файла в ОС>,< строка>) (string , string) : (i,0) ( i,i) - читает знаки до 64кб из файла в перем. памяти, если задано (i,0). Если задано ( i,i), то знаки из пер.памяти зап-ся в файл. Чтение и запись прекращается , если встретиться признак конца файла. Этот предикат работает без определения символьного имени файла. READTERM (,< терм>) (< имя области>,< терм>) : (i,0) После открытия файла этот предикат читает факты из него. Первый аргумент предиката д.б. описан в разделе domains программы EOF (< символьное имя файла>) (file) : (i) Предикат имеет значение " Истина", если указатель файлов позиции установлен на конце файла FILEPOS (< сим. ............ |