Пример 16.1. Использование команды save
(clear)
(deffunction example-1 ( )
(printout t "Function example 1 without parameters" crlf)
)
(deffunction example-2 (?a)
(printout t "Function example 2 with 1 parameter" crlf)
(printout t "Parameter = "?a crlf)
)
(deffunction example-3 (?a ?b)
(printout t "Function example 3 with 2 parameters" crlf)
(printout t "Parameter 1 = "?a crlf)
(printout t "Parameter 2 = "?b crlf)
)
(save "example-22.CLP")
После выполнения описанных выше действий откройте полученный файл example.CLP (например, с помощью программы Notepad (Блокнот) операционной системы Windows). Полученный файл имеет содержание, представленное в примере 16.2.
Пример 16.2. Результат применения команды save
(deffunction MAIN::example-l ())
(deffunction MAIN::example-2 (?p0))
(deffunction MAIN::example-3 (?p0 ?pl))
(deffunction MAIN::example-1
( )
(printout t "Function example 1 without parameters" crlf))
(deffunction MAIN::example-2
(?a)
(printout t "Function example 2 with 1 parameter" crlf)
(printout t "Parameter = " ?a crlf))
(deffunction MAIN::example-3
(?a ?b)
(printout t "Function example 3 with 2 parameters" crlf)
(printout t "Parameter 1 = " ?a crlf)
(printout t "Parameter 2 = " ?b crlf))
Как видно из приведенного примера, в начале файла сохраняются предварительные определения всех функций — объявления их названий и списка необходимых параметров, без определения последовательности действий, выполняемых функциями. И только после предварительного определения всех функций, содержащихся в данный момент в системе, в текстовый файл помещают полные определения функции.
В случае успешного выполнения команда save возвращает значение true, в противном случае — false.
Кроме команд save и load, позволяющих сохранять и загружать конструкторы из текстовых файлов, CLIPS предоставляет аналогичные функции bsave и bload, использующие бинарные файлы. Формат этих функций приведен ниже.
Определение 16.3. Команды bsave и bload
(bsave <имя-файла>) (bload <имя-файла>)
Замечание
Бинарные файлы обладают определенными преимуществами. Они загружаются гораздо быстрее текстовых. Кроме того, формат бинарных файлов не зависит от платформы, на которой применяется CLIPS, и поэтому файлы могут использоваться, например, для переноса информации из UNIX-версии системы CLIPS в Windows-версию. Однако бинарные файлы обладают также и рядом недостатков. Во-первых, они имеют гораздо больший размер, чем текстовые файлы. Во-вторых, создание бинарных файлов возможно только с помощью выполнения команды bsave непосредственно в среде CLIPS. В-третьих, бинарные файлы не сохраняют текстовое определение конструкторов, поэтому для конструкторов, загруженных с помощью бинарных файлов, невозможно использование команд, предназначенных для вывода определения конструктора в диалоговое окно (например, ppdefrule, ppdeftemplate и т. д.). Кроме того, в бинарных файлах не сохраняется информация об ограничениях, ассоциированная с конструкторами, если включен режим динамической проверки ограничений.
Обе команды возвращают значение true, если в процессе выполнения не произошло ошибок, и значение FALSE — в противном случае.
Команда clear предназначена для очистки рабочей памяти системы. Она удаляет все определенные в системе на текущий момент конструкторы и ассоциированные с ними данные. Команда clear не возвращает никакого значения и имеет следующий формат:
Дата добавления: 2021-12-14; просмотров: 253;