Навигация
Главная
Поиск
Форум
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
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 63915
Модуль Forms 63638
ТЕХНОЛОГИИ ДОСТ... 60492
Пример работы с... 59894
Имитационное мо... 55961
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

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

База данных студентов на Delphi (файл записей) + Блок схемы
Диплом RSA, ЭЦП, сертификаты, шифрование на C#
Моделирование интернет магазина (Apache, Php, Html) на GPSS + Блок схема

Реклама



Подписывайся на 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 Комментариев · 14472 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Графика в проекта...
UmEdit
Задача о 8ми ладьях
Редактор текста (...
Базы данных в Инт...
Pass [Исходник на...
Progressbar
Delphi 2005 для W...
KOL & MCK v1.69
HTMLredaktor
AntiRus
Socoban
NetGraph [Исходни...
Delphi7 Для профе...
Assistant
Измерение тактово...
Программа предназ...
БД студентов
PRNDbgrid
Программирование ...

Топ загрузок
Приложение Клие... 100449
Delphi 7 Enterp... 85834
Converter AMR<-... 20067
GPSS World Stud... 12518
Borland C++Buil... 11578
Borland Delphi ... 8504
Turbo Pascal fo... 7023
Visual Studio 2... 4989
Калькулятор [Ис... 4739
FreeSMS v1.3.1 3536
Случайные статьи
16.10.
Частоты, использую...
Office 365 уже сег...
Указатель this
Record variable ex...
Область построения...
Особенности примен...
Активный маршрутиз...
Работа с переключа...
Настраиваемые конс...
ПОПОЛНЕНИЕ БАЗЫ ЗН...
Постоянно обновляй...
Команды INTEL 80x86
Списки потомков + ...
RAID уровня 0
Здесь такжерассмот...
• Список отзыва се...
Трояны - это свои ...
Жизненный цикл про...
Установка последов...
Cобытийное моделир...
Стандарт ITU-T V.34
Сколько еще будет ...
Мониторинг состоян...
Женская психология
Статистика



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


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