Навигация
Главная
Поиск
Форум
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
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
https://pravogolosa.net ИП Малхасян Овик Артушович отзывы. .
Смотрите описание металлические ворота для гаража у нас.
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

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

База данных междугородних телефонных разговоров на Delphi
Моделирование работы участка термической обработки шестерен на GPSS + По...
Моделирование автомойки на GPSS + Отчет + Блок схемы

Файлы в Турбо Прологе и их обработка
Турбо Пролог обеспечивает все возможности обработки информации,
содержащейся в файлах на внешних носителях. В языке ТП содержится
ряд стандартных предикатов, обеспечивающих создание, открытие и
закрытие файлов, чтение из файла и запись в файл.
Для открытия файлов в ТП существует четыре предиката:
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 18:51:08 · 0 Комментариев · 19131 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Генетический алго...
Экранная лупа
WinAmp
Fig [Исходник на ...
Х. М. Дейтел, П. ...
Ics
Игра PackMan
База данных фильм...
Шаблон для новост...
Динамические за...
JanComp
Программирование ...
Java в примерах -...
Библия хакера 2 К...
Программирование ...
База предприятий ...
Java 2 - Эффектив...
Рисование PopupMenu
Xrumer 4 Platinum...
База игр

Топ загрузок
Приложение Клие... 100793
Delphi 7 Enterp... 98030
Converter AMR<-... 20298
GPSS World Stud... 17060
Borland C++Buil... 14244
Borland Delphi ... 10376
Turbo Pascal fo... 7392
Калькулятор [Ис... 6082
Visual Studio 2... 5232
Microsoft SQL S... 3674
Случайные статьи
Межапартаментный д...
1, Записи ресурсов...
О рекламе и о спаме
Расшифровать файл ...
ПРИНАДЛЕЖНОСТЬ ЭЛЕ...
Ввод элементарных ...
Типы данных
(When Possible)
Информация в верти...
Отделение интерфей...
Пути повышения Lin...
Что делать, если п...
Представление дере...
Как раскрутить спе...
7.9. Поиск по гр...
СОБЛЮДЕНИЕ ФОРМАТА...
Евровидение 2017
и режим ядра гаран...
Вулкан Неон на реа...
Invalid string length
Правильная настрой...
Зеркала для волн р...
Европейская рулетк...
Выбор темы и настр...
Массивы в среде Vi...
Статистика



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


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