Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Модификация существующего файла
Турбо-Пролог позволяет открывать файлы для модификации, то есть для чтения и записи одновременно. Для этой цели служит предикат openmodify. openmodify(<символическое имя файла>, <имя_DOS_файла>). Пример(datafile1,"file4.dat") Предикат успешен только в том случае, если файл уже присутствует на диске. Содержимое файла можно рассматривать как поток символов. Позиция каждого символа определяется его удаленностью от первого символа файла. Таким образом, первый символ в файле занимает нулевую позицию, второй - первую и т. д. Позицию, из которой будет прочитан или в которую будет записан очередной символ, определяет указатель. Указатель файла может быть помещен в любую позицию. Файлы с такой организацией доступа к хранящейся в ней информации называются файлами прямого доступа, а операции выборки из такого файла - вводом-выводом из файла прямого доступа. Когда файл открывается для записи или модификации, указатель помещается в начало файла. Однако Турбо-Пролог позволяет смещать указатель при помощи предиката filepos. filepos(<символическое_имя_файла>, <позиция_указателя>, <тип_смещения>). Параметру <позиция_указателя> здесь должно быть присвоено действительное число, обозначающее позицию в файле, из которой будет считан или в которую будет записан символ (дробная часть числа отбрасывается). Параметру <тип_смещения> может быть присвоено одно из трех значений: 0, 1 или 2. Эти значения определяют то, как будет интерпретировано значение <позиция_указателя>. В табл. 1 пояснено употребление каждого допустимого значения параметра <тип_смещения>. база данные файл диск Таблица 1 Режимы работы предиката filepos
Рассмотрим, для примера, такое употребление предиката filepos:(datafile1,100,0). В этом выражении datafile1 есть имя логического файла. Параметр <позиция_указателя> имеет значение 100, что указывает на то, что будет прочитан символ, стоящий в 100-й позиции (101-й символ). Значение 0 параметра <тип_смещения> свидетельствует о том, что сотая позиция будет отсчитываться от начала файла. Если в этой записи 0 заменить на 1,
filepos(datafile1,100,1), то отсчет будет вестись уже относительно текущей позиции указателя. Если данный предикат будет успешен, то указатель сдвинется еще на 100 позиций вперед. Закрытие файла
Этой цели служит предикат closefile(<символическое имя файла>). Например,(datafile1). Когда файл закрыт, операции чтения или записи для него недопустимы. Закрытие файла также защищает содержимое файла от каких бы то ни было манипуляций, так как теперь возможны лишь операции с файлом в целом. Еще одним следствием закрытия файла является перевод указателя файла в начало. Это может понадобиться при повторном открытии файла. Переадресация ввода-вывода
Встроенный предикат Турбо-Пролога readdevice позволяет переадресовать логическое устройство ввода. Аналогично встроенный предикат writedevice осуществляет переадресацию устройства вывода информации. Так предикат(myfile) настраивает устройство ввода на файл myfile, а предикат(yourfile) настраивает устройство вывода на файл yourfile. Для настройки ввода и вывода на стандартные устройства в Турбо-Прологе используются стандартные имена screen, keyboard, printer. Например, правило_lines:- writedevice(screen), write(" Первая строка "),, writedevice(printer),(" Первая строка"),nl, flush(printer), writedevice(screen). выводит строку " Первая строка " на экран монитора, а затем эту же строку выводит на принтер. Стандартный предикат flush здесь используется для того, чтобы строка была выведена из буфера сразу на принтер. Другие полезные предикаты
Предикат eof производит проверку на достижение конца файла eof(<символическое_имя_файла>) Для автоматизации процесса открытия различных файлов бывает полезно использования операций конкатенации строковых переменных, для чего в Турбо-Прологе используют стандартный предикат concat: concat(<строка1>,<строка2>, <новая_строка>).
|
|||||||||||||
Последнее изменение этой страницы: 2020-03-14; просмотров: 97; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.151.231 (0.007 с.) |