[doc] libraryinfo() page overhauled
[scilab.git] / scilab / modules / functions / help / ru_RU / libraries / libraryinfo.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) DIGITEO - Scilab Consortium
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2019 - Samuel GOUGEON
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17           xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
18           xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
19           xml:lang="ru" xml:id="libraryinfo">
20     <refnamediv>
21         <refname>libraryinfo</refname>
22         <refpurpose>
23             получает путь и устанавливает главные функции загруженной библиотеки
24         </refpurpose>
25     </refnamediv>
26     <refsynopsisdiv>
27         <title>Синтаксис</title>
28         <synopsis>
29             macros = libraryinfo(libraryname)
30             [macros, libpath] = libraryinfo(libraryname)
31         </synopsis>
32     </refsynopsisdiv>
33     <refsection>
34         <title>Аргументы</title>
35         <variablelist>
36             <varlistentry>
37                 <term>libraryname</term>
38                 <listitem>
39                     <para>строка: имя загруженной библиотеки.</para>
40                 </listitem>
41             </varlistentry>
42         </variablelist>
43         <variablelist>
44             <varlistentry>
45                 <term>macros</term>
46                 <listitem>
47                     <para>
48                         столбец строк: имена главных функций, принадлежащих библиотеке.
49                     </para>
50                 </listitem>
51             </varlistentry>
52         </variablelist>
53         <variablelist>
54             <varlistentry>
55                 <term>libpath</term>
56                 <listitem>
57                     <para>строка: путь до файла в библиотеке.</para>
58                 </listitem>
59             </varlistentry>
60         </variablelist>
61     </refsection>
62     <refsection>
63         <title>Описание</title>
64         <para>
65             Получает имена функций (написанных на языке Scilab), принадлежаних указанной
66             библиотеке, и путь до директории, где хранятся их <literal>*.sci</literal>-файлы и
67             файлы библиотеки. Вспомогательные функции, которые могут следовать за главными
68             функциями в <literal>*.sci</literal>-файлах, являются приватными и не возвращаются.
69             <warning>
70                 Только загруженные библиотеки могут быть адресованы с помощью <literal>libraryinfo()</literal>.
71             </warning>
72         </para>
73         <refsect3>
74             <title>Получение некоторой информации о библиотеки из её дескриптора</title>
75             <para>
76                 <literal>libraryinfo()</literal> работает по литеральному имени библиотеки.
77                 В некоторых случаях в наличии может быть только их дескриптор, определённый при
78                 загрузке библиотеки. Например, <literal>libraryinfo("iolib")</literal> работает,
79                 а <literal>libraryinfo(iolib)</literal> - нет. Как же использовать дескриптор для 
80                 получения какой-либо информации? Продолжим с примером <literal>iolib</literal>:
81                 <itemizedlist>
82                     <listitem>
83                         <emphasis role="bold">Получение пути</emphasis>:
84                         <literal>libpath = string(iolib)(1)</literal>
85                     </listitem>
86                     <listitem>
87                         <emphasis role="bold">Получение вектор-столбца составляющих функций</emphasis>:
88                         <literal>functions = string(iolib)(2:$)</literal>
89                     </listitem>
90                     <listitem>
91                         <emphasis role="bold">Получение литерального имени библиотеки</emphasis>:
92                         <literal>libraryname = xmlGetValues("//scilablib", "name", libpath)</literal>
93                     </listitem>
94                 </itemizedlist>
95             </para>
96         </refsect3>
97         <refsect3>
98             <title>Незагруженная библиотека: получение информации по своему пути</title>
99             <para>
100                 Если рассматриваемая библиотека не загружена, то ни
101                 <literal>libraryinfo()</literal>, ни <literal>string()</literal> не будут
102                 работать.
103             </para>
104             <para>
105                 При условии, что известен путь <varname>libpath</varname>, можно
106                 <itemizedlist>
107                     <listitem>
108                         <emphasis role="bold">получить его литеральное имя</emphasis>:
109                         <literal>xmlGetValues("//scilablib", "name", libpath+"/lib")</literal>
110                     </listitem>
111                     <listitem>
112                         <emphasis role="bold">получить вектор-столбец составляющих
113                         функций</emphasis>:
114                         <literal>functions = xmlGetValues("//scilablib/macro", "name", libpath+"/lib")</literal>
115                     </listitem>
116                 </itemizedlist>
117             </para>
118         </refsect3>
119     </refsection>
120     <refsection>
121         <title>Примеры</title>
122         <para>
123             C <literal>libraryinfo()</literal> по литеральному имени библиотеки:
124         </para>
125         <programlisting role="example"><![CDATA[
126 [f, p] = libraryinfo("iolib")
127      ]]></programlisting>
128     <screen><![CDATA[
129 --> [f, p] = libraryinfo("iolib")
130  p  =
131  SCI\modules\io\macros\
132
133  f  =
134 !input      !
135 !unix_g     !
136 !unix_w     !
137 !%_sodload  !
138 !unix_x     !
139 !unix_s     !
140 ]]></screen>
141         <para/>
142         <para>
143             По дескриптору библиотеки:
144         </para>
145         <programlisting role="example"><![CDATA[
146 // Просто для отображения:
147 iolib
148
149 // Перехватить информацию в переменных:
150 p = string(iolib)(1)
151 f = string(iolib)(2:$)
152 libname = xmlGetValues("//scilablib", "name", p+"/lib")
153      ]]></programlisting>
154     <screen><![CDATA[
155 --> // Просто для отображения:
156 --> iolib
157
158  iolib  =
159 Functions files location : SCI\modules\io\macros\.
160 input  unix_g  unix_w  %_sodload  unix_x  unix_s
161
162 --> // Перехватить информацию в переменных:
163 --> p = string(iolib)(1)
164  p  =
165  SCI\modules\io\macros\
166
167 --> f = string(iolib)(2:$)
168  f  =
169 !input      !
170 !unix_g     !
171 !unix_w     !
172 !%_sodload  !
173 !unix_x     !
174 !unix_s     !
175
176 --> libname = xmlGetValues("//scilablib", "name", p+"/lib")
177  libname  =
178  iolib
179 ]]></screen>
180     <para/>
181         <para>
182             Для незагруженной библиотеки, по её пути:
183         </para>
184         <programlisting role="example"><![CDATA[
185 path = fullpath("SCI/modules/scicos_blocks/macros/Hydraulics");
186 libname = xmlGetValues("//scilablib", "name", path+"/lib")
187 functions = xmlGetValues("//scilablib/macro", "name", path+"/lib")
188 Hydraulicslib  // незагруженная (Xcos не должен быть запущен)
189      ]]></programlisting>
190     <screen><![CDATA[
191 --> libname = xmlGetValues("//scilablib", "name", path+"/lib")
192  libname  =
193  Hydraulicslib
194
195 --> functions = xmlGetValues("//scilablib/macro", "name", path+"/lib")
196  functions  =
197 !Bache          !
198 !Flowmeter      !
199 !PerteDP        !
200 !PuitsP         !
201 !SourceP        !
202 !VanneReglante  !
203
204 --> Hydraulicslib
205 Undefined variable: Hydraulicslib
206 ]]></screen>
207     </refsection>
208     <refsection role="see also">
209         <title>Смотрите также</title>
210         <simplelist type="inline">
211             <member>
212                 <link linkend="string">string</link>
213             </member>
214             <member>
215                 <link linkend="load">load</link>
216             </member>
217             <member>
218                 <link linkend="librarieslist">librarieslist</link>
219             </member>
220             <member>
221                 <link linkend="whereis">whereis</link>
222             </member>
223         </simplelist>
224     </refsection>
225 </refentry>