Работа с файлами
Текущим входным потоком данных по умолчанию является клавиатура (user). Предикат see(X) открывает файл X, если он еще не открыт, и файл X становится текущим входным потоком данных. Цель seeing(X) успешна, если имя текущего входного потока сопоставимо с X. Предикат seen закрывает текущий входной поток и переключается на интерактивный ввод данных от пользователя.
Текущим выходным потоком данных по умолчанию является экран (user). Предикат tell(X) открывает файл X, если он еще не открыт, и файл X становится текущим выходным потоком данных Цель telling(X) успешна, если имя текущего выходного потока сопоставимо с X. Предикат told закрывает текущий выходной поток и переключается на интерактивный вывод данных пользователю.
Выше перечислены классические предикаты, используемый в Эдинбургской нотации.
Следует отметить, что SWI-Пролог содержит избыточное множество встроенных предикатов для работы с файловой системой (часть которых представлена ниже), и даже поддерживает ряд команд, заимствованных из ОС Unix (например, вызов ls. - выдаст список всех файлов в текущей рабочей директории, а команда cd('../'). - сменит текущий рабочий каталог на его родительскую директорию).
В диалекте SWI-Пролога в частности заслуживают внимания следующие предикаты (их подробное описание можно найти в программной справке):
edit/1 - редактирование файла
open/3 - открытие файла (создание потока)
append/1 - добавление данных в конец файла
include/1 - подключить файл с объявлениями
load_files/2 - загрузка исходных кодов программ с опциями
read_file_to_terms/3 - чтение содержимого файла в виде термов
exists_file/1 - проверить существование файла (по заданному пути)
delete_directory/1 - удаление заданной директории
delete_file/1 - удаление заданного файла
absolute_file_name/2 - получить абсолютный путь к файлу
file_base_name/2 - получить имя файла из полного пути
file_directory_name/2 - получить путь к файлу (вплоть до последней директории)
- Тема 1 Основные понятия и определения
- Тема 3 Проектирование программных продуктов.
- Основные группы методов
- Эвристические методы
- Метод итераций (последовательного приближения)
- Метод декомпозиции
- Метод контрольных вопросов
- Тема 4 Структура и формат, статические и динамические данные.
- Тема 5 Стандартизация программных продуктов
- Стандартизация программных продуктов
- Система качества пп
- Тема 6 Модульное программирование
- Тема 6 Модульное программирование
- 2. Минимизации количества передаваемых параметров
- Тема 7 Эффективность и оптимизация программ
- 1. Эффективность и технологичность. Способы экономии памяти. Способы уменьшения времени выполнения
- 2. Правила оптимизации программ
- Жертвуем памятью ради скорости
- Жертвуем скоростью ради памяти
- Логические правила
- Составление процедур
- Составление выражений
- Тема 8 Требования и спецификация качества к программных продуктов
- Тема 9 Защита программ
- Тема 10 Инструментальные средства разработки программ
- Тема 11 Коллективная разработка программных средств
- 1.1 Структура управления разработкой программных средств.
- Тема 12 Объектный подход к разработке программных продуктов
- Тема 13 Факторы надежности программных продуктов
- Тема 14 Структурное программирование программных продуктов
- Тема 15 Объектно-ориентированное программирование (ооп)
- Тема 15 Объектно-ориентированное программирование (ооп)
- Тема 16 Стиль программирования
- Тема 16 Стиль программирования
- Тема 17 Отладка, тестирование, сопровождение программ
- 2.Тестирование «белым ящиков»
- 6.Виды сопровождения и отладок пп.
- Тема 18 Экономические аспекты создания и использования программных средств
- Тема 20 Пакеты прикладных программ
- Тема 21 Язык программирования Турбо-Пролог
- Язык Пролог
- Тема 22 Списки и структуры в Прологе.
- Списки в Прологе
- Тема 23 Работа с файлами и динамическими базами данных в Прологе
- Работа с файлами
- Работа с файлами
- 3.6.3. Динамические базы данных