Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 64639
Имитационное мо... 58924
Реклама
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 13,101
новичок: Limbo67
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы крупного аэропорта на GPSS + Пояснительная записка
Моделирование работы класса персональных компьютеров на GPSS + Отчет + Б...
Обучающая и тестирующая программа по здаче экзамена ПДД на Turbo Pascal ...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Файлы в Турбо Прологе и их обработка
Турбо Пролог обеспечивает все возможности обработки информации,
содержащейся в файлах на внешних носителях. В языке ТП содержится
ряд стандартных предикатов, обеспечивающих создание, открытие и
закрытие файлов, чтение из файла и запись в файл.
Для открытия файлов в ТП существует четыре предиката:
openwrite(log_name, DOS_name),
openread(log_name, DOS_name),
openmodify(log_name, DOS_name),
openappend(log_name, DOS_name).



Предикаты open... устанавливают связь между внешним (для
Пролога) DOS-именем файла и его внутренним (логическим) именем,
используемым в пределах программы. Предикат openwrite создает
новый файл и открывает его для записи, предикат openread откры-
вает существующий файл для чтения, предикат openmodify откры-
вает файл для чтения и записи, а предикат openappend- для
добавления информации в конец существующего файла.
Для активизации объявленных файлов используются предикаты
writedevice и readdevice. Предикат writedevice (log_name) выпол-
няет переадресацию вывода в указанный файл, а предикат
readdevice (log_name) производит переадресацию ввода с ука-
занного файла. Для завершения работы с открытым ранее файлом
используется предикат closefile (log_name).
В ТП следующие имена стандартных устройств ввода-вывода
зарезервированы:
screen - стандартный вывод на экран (stdout);
keyboard - стандартный ввод с клавиатуры (stdin);
printer - вывод на устройство печати;
com1 - ввод-вывод через порт.
Все остальные логические имена будут восприниматься ТП
как имена файлов. Логические имена файлов должны быть объявлены
в разделе domains при помощи ключевого слова file, например:
file=inp_file1; inp_file2; out_file.



Строка объявления типа объектов file имеет две особенности.
Во-первых, ключевое слово file расположено, в отличие от описателей
других типов данных, в начале строки. Во-вторых, имена типов
разделяются точками с запятой, а не запятыми. Объявлять пере-
численные выше зарезервированные устройства ввод-вывода не тре-
буется.
Для выдачи информации на текущее устройство вывода используются
стандартные предикаты ТП:
write (A1, A2,...);
writef ("формат ", A1,A2,...),



здесь А1,А2,...-аргументы предикатов, которые могут принимать значения
констант или переменных, а "формат" - строка, описывающая формат
вывода. В строке формата могут быть использованы следующие параметры:
% d - число со знаком (для типов char и integer);
% u - число без знака (для типов char и integer);
% X - шестнадцатеричное число (тип string);
% x - шестнадцатеричное число (для типов char и integer);
% S - строка символов ( типы symbol и string);
% c - одиночный символ (типы char и integer);
% g - действительное число в минимальном формате (тип real);
% e - экспоненциальная форма действительного числа;
% f - действительное число с фиксированной точкой.



Кроме того, в предикатах вывода могут использоваться
следующие управляющие символы:
\n - переход на новую строку;
\t - табуляция вывода;
\xxx - вывод символа с кодом ххх.



Для приема информации различного типа с текущего устройства
ввода в ТП существует группа предикатов:
readchar (char),
readint (integer),
readln (string),
readreal (real),



которые выполняют ввод значений в переменные типов char, integer,
string и real соответственно.
Следующая программа демонстрирует использование предикатов ввода-
вывода.

domains
file = fl1 ; fl2
predicates
data(string)
clauses
data("Текст, заносимый в файл").
goal
write("Исходный текст : "),nl,
data(X), write(X), nl,
Write("Укажите имя выходного файла : "),
readln(Fname),
openwrite(fl1,Fname),
writedevice(fl1),
write(X),
closefile(fl1),
writedevice(screen),
write("Включите принтер и нажмите "),
readchar(_),
writedevice(printer),
openread(fl2,Fname),
readdevice(fl2),
readln(Y),
nl,write(Y),
closefile(fl2),
writedevice(screen),
readdevice(keyboard),nl,
write("Программа завершена").


Опубликовал Kest April 02 2009 22:51:08 · 0 Комментариев · 14835 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Создание фракталов
Microsoft Press -...
CoolControls v3.0...
Delphi 2005 для W...
EMS QuickExport S...
Blib [Исходник на...
Illusion
Strawberry Prolog...
SysInfo [Исходник...
Рисование PopupMenu
DS_Group
DCAVI
Delphi. Учимся на...
100 компонентов о...
OnlineIP
Запрет гостям ск...
Архив программ
Киллер окон
Факториал [Исходн...
Панель поиска

Топ загрузок
Приложение Клие... 100500
Delphi 7 Enterp... 89040
Converter AMR<-... 20086
GPSS World Stud... 14182
Borland C++Buil... 12383
Borland Delphi ... 8799
Turbo Pascal fo... 7067
Калькулятор [Ис... 5023
Visual Studio 2... 5010
FreeSMS v1.3.1 3549
Случайные статьи
Где бесплатно скач...
Работа с окружением
Простой скрипт CGI
Общность предмета...
Основные понятия о...
Выбор технологии
Последовательный п...
Понятие функтора
Удостоверьтесь, чт...
Язык С: класс памяти
Справочные списки
Конъюнкция целей
Развертывание гото...
Отладка и программ...
Смешение различных...
Краткая история Ni...
Управляющая логика
Единственная сущес...
объекту
услуг Интернета (I...
Многопользовательс...
Доставка и обработ...
[Authoritylnformat...
Руководство по пон...
Фил ьтрация группо...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?