Навигация
Главная
Поиск
Форум
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
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 61062
Организация зап... 58730
Invision Power ... 58715
Приложение «Про... 57174
Модуль Forms 57135
Оператор выбора... 56647
Создание отчето... 56104
Подключение Mic... 56082
ТЕХНОЛОГИИ ДОСТ... 52320
Программируемая... 49813
Пример работы с... 48165
Имитационное мо... 47857
21 ошибка прогр... 42806
Реклама
Сейчас на сайте
Гостей: 14
На сайте нет зарегистрированных пользователей

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

Программа тестирования (тест) - вступительные экзамены (математика, физи...
База данных студентов на Turbo Pascal (Списки) + Пояснительная записка
Диплом - база данных поставщиков на Delphi (MS Sql Server)+ Пояснительна...

Реклама

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

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
C# в кратком изло...
Visual Studio 200...
Assembler. Учебни...
С. Г. Горнаков - ...
Задача о 8ми ладьях
TMS
Cтатьи Королевств...
начисление процен...
Delphi 2005 Секре...
Dynamic Titles дл...
Pro-Download Sys...
Dealer
Создание оригинал...
Обучение Borland ...
Binary2XMLDemo (Р...
RSS Feeds
Пишем программы и...
Упорядоченный дин...
100 компонентов о...
INSTANT BOOSTER v...

Топ загрузок
Приложение Клие... 100308
Delphi 7 Enterp... 78147
Converter AMR<-... 20021
Borland C++Buil... 10705
GPSS World Stud... 9313
Borland Delphi ... 7677
Turbo Pascal fo... 6885
Visual Studio 2... 4906
Калькулятор [Ис... 4010
FreeSMS v1.3.1 3486
Случайные статьи
В современных сист...
Этап 6 - выделение...
Карта SIMULATE
Apache. Полезные с...
Также служба должн...
Книги и статьи
Процесс компиляции
memory_object_data...
Комментарии
сверку с CRL (рис
Присваивайте назва...
Какова лучшая стра...
Компьютерный монитор
Разработка многопо...
Программирование в...
Нуждается ли комму...
определена данная ...
Что такое Internet...
Создание шаблона д...
Открытие документа
Переключатель Micr...
Другие реализации ...
Перегрузка методов...
Функциональный модуль
Продвижение сайта ...
Статистика



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


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