получает путь и устанавливает главные функции загруженной библиотеки
macros = libraryinfo(libraryname) [macros, libpath] = libraryinfo(libraryname)
строка: имя загруженной библиотеки.
столбец строк: имена главных функций, принадлежащих библиотеке.
строка: путь до файла в библиотеке.
Получает имена функций (написанных на языке Scilab), принадлежаних указанной
библиотеке, и путь до директории, где хранятся их *.sci
-файлы и
файлы библиотеки. Вспомогательные функции, которые могут следовать за главными
функциями в *.sci
-файлах, являются приватными и не возвращаются.
![]() | Только загруженные библиотеки могут быть адресованы с помощью libraryinfo() . |
libraryinfo()
работает по литеральному имени библиотеки.
В некоторых случаях в наличии может быть только их дескриптор, определённый при
загрузке библиотеки. Например, libraryinfo("iolib")
работает,
а libraryinfo(iolib)
- нет. Как же использовать дескриптор для
получения какой-либо информации? Продолжим с примером iolib
:
libpath = string(iolib)(1)
functions = string(iolib)(2:$)
libraryname = xmlGetValues("//scilablib", "name", libpath+"/lib")
Если рассматриваемая библиотека не загружена, то ни
libraryinfo()
, ни string()
не будут
работать.
При условии, что известен путь libpath
, можно
xmlGetValues("//scilablib", "name", libpath+"/lib")
functions = xmlGetValues("//scilablib/macro", "name", libpath+"/lib")
C libraryinfo()
по литеральному имени библиотеки:
--> [f, p] = libraryinfo("iolib") p = SCI\modules\io\macros\ f = !input ! !unix_g ! !unix_w ! !%_sodload ! !unix_x ! !unix_s !
По дескриптору библиотеки:
// Просто для отображения: iolib // Перехватить информацию в переменных: p = string(iolib)(1) f = string(iolib)(2:$) libname = xmlGetValues("//scilablib", "name", p+"/lib") | ![]() | ![]() |
--> // Просто для отображения: --> iolib iolib = Functions files location : SCI\modules\io\macros\. input unix_g unix_w %_sodload unix_x unix_s --> // Перехватить информацию в переменных: --> p = string(iolib)(1) p = SCI\modules\io\macros\ --> f = string(iolib)(2:$) f = !input ! !unix_g ! !unix_w ! !%_sodload ! !unix_x ! !unix_s ! --> libname = xmlGetValues("//scilablib", "name", p+"/lib") libname = iolib
Для незагруженной библиотеки, по её пути:
path = fullpath("SCI/modules/scicos_blocks/macros/Hydraulics"); libname = xmlGetValues("//scilablib", "name", path+"/lib") functions = xmlGetValues("//scilablib/macro", "name", path+"/lib") Hydraulicslib // незагруженная (Xcos не должен быть запущен) | ![]() | ![]() |
--> libname = xmlGetValues("//scilablib", "name", path+"/lib") libname = Hydraulicslib --> functions = xmlGetValues("//scilablib/macro", "name", path+"/lib") functions = !Bache ! !Flowmeter ! !PerteDP ! !PuitsP ! !SourceP ! !VanneReglante ! --> Hydraulicslib Undefined variable: Hydraulicslib