Обработка данных по сценарию на языке Lua |
Для простоты и удобства обработки значительных объёмов данных в программах на C++ может использоваться скриптовый язык программирования Lua, язык написания и выполнения сценария (скрипта). В Lua имеются средства для выполнения математических функций, обработки файлов, таблиц метаданных. Диалог для интерактивного ввода и выполнения скриптов имеет вид:
Для расчётов семантических характеристик принимаются во внимание выделенные на картах объекты или объекты, для которых установлен фильтр поиска по кнопке диалога Фильтр. Окно сценария служит для ввода различных вычислительных операций, в которых могут быть использованы встроенные функции, перечисленные в поле диалога Подсказки для написания сценария. По двойному клику левой кнопкой мыши на строке подсказок выбранная функция копируется в поле ввода сценария. В одном сценарии допустимо присутствие произвольного числа действий для расчётов семантических характеристик. Например, умножить площадь объекта на длину из семантики с кодом 1 и запомнить полученное значение в семантике с кодом 7 (коды зависят от классификатора карты): value = getSquare() * getCodeSem(2) setCodeSem(7, value) Если параметром встроенной функции в скрипте является символьное значение, его надо заключить в двойные или одинарные кавычки. В диалоге можно открывать и создавать произвольное число сценариев. Сценарии размещаются в динамически подгружаемых закладках. Имя файла сценария устанавливается программно (временное имя "temp") или пользователем (кнопка Сохранить). Удалить закладку можно нажатием левой кнопки мыши на крестик в правом углу заголовка закладки. Для удобства выбора кодов семантик в правой части окна диалога указан перечень семантик классификатора карты. Список семантик открыт только для просмотра. Сценарий по окончании процесса выполнения автоматически сохраняется в папке LOG для открытой карты. Ошибки, возникшие в ходе выполнения расчётов по сценарию, помещаются в протокол работы программы и могут быть просмотрены по активизации кнопки Протокол ошибок.
Примеры скриптов на языке Lua.
|