Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Функции > Библиотеки > libraryinfo

libraryinfo

получает путь и устанавливает главные функции загруженной библиотеки

Синтаксис

macros = libraryinfo(libraryname)
[macros, libpath] = libraryinfo(libraryname)

Аргументы

libraryname

строка: имя загруженной библиотеки.

macros

столбец строк: имена главных функций, принадлежащих библиотеке.

libpath

строка: путь до файла в библиотеке.

Описание

Получает имена функций (написанных на языке Scilab), принадлежаних указанной библиотеке, и путь до директории, где хранятся их *.sci-файлы и файлы библиотеки. Вспомогательные функции, которые могут следовать за главными функциями в *.sci-файлах, являются приватными и не возвращаются.

Только загруженные библиотеки могут быть адресованы с помощью libraryinfo().

Получение некоторой информации о библиотеки из её дескриптора

libraryinfo() работает по литеральному имени библиотеки. В некоторых случаях в наличии может быть только их дескриптор, определённый при загрузке библиотеки. Например, libraryinfo("iolib") работает, а libraryinfo(iolib) - нет. Как же использовать дескриптор для получения какой-либо информации? Продолжим с примером iolib:

  • Получение пути: libpath = string(iolib)(1)
  • Получение вектор-столбца составляющих функций: functions = string(iolib)(2:$)
  • Получение литерального имени библиотеки: libraryname = xmlGetValues("//scilablib", "name", libpath)

Незагруженная библиотека: получение информации по своему пути

Если рассматриваемая библиотека не загружена, то ни libraryinfo(), ни string() не будут работать.

При условии, что известен путь libpath, можно

  • получить его литеральное имя: xmlGetValues("//scilablib", "name", libpath+"/lib")
  • получить вектор-столбец составляющих функций: functions = xmlGetValues("//scilablib/macro", "name", libpath+"/lib")

Примеры

C libraryinfo() по литеральному имени библиотеки:

[f, p] = libraryinfo("iolib")
--> [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

Смотрите также

  • librarieslist — gets the list of loaded Scilab libraries
  • whereis — Returns the name of the loaded library/module a given function belongs to
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:28 CEST 2021