270 lines
18 KiB
HTML
270 lines
18 KiB
HTML
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
||
<html>
|
||
<head>
|
||
<title>library</title>
|
||
</head>
|
||
<body>
|
||
<h1>library</h1>
|
||
|
||
<p>Команды стандартной библиотеки процедур Tcl.</p>
|
||
|
||
<h2>СИНТАКСИС</h2>
|
||
|
||
<pre>
|
||
<a href=#auto_execok><strong>auto_execok</strong></a> <em>cmd</em>
|
||
<a href=#auto_load><strong>auto_load</strong></a> <em>cmd</em>
|
||
<a href=#auto_mkindex><strong>auto_mkindex</strong></a> <em>dir</em> <em>pattern</em> <em>pattern</em>
|
||
<a href=#auto_reset><strong>auto_reset</strong></a>
|
||
<a href=#parray><strong>parray</strong></a> <em>arrayName</em>
|
||
<a href=#tcl_endOfWord><strong>tcl_endOfWord</strong></a> <em>str</em> <em>start</em>
|
||
<a href=#tcl_endOfWord><strong>tcl_startOfNextWord</strong></a> <em>str</em> <em>start</em>
|
||
<a href=#tcl_startOfPreviousWord><strong>tcl_startOfPreviousWord</strong></a> <em>str</em> <em>start</em>
|
||
<a href=#tcl_wordBreakAfter><strong>tcl_wordBreakAfter</strong></a> <em>str</em> <em>start</em>
|
||
<a href=#tcl_wordBreakBefore><strong>tcl_wordBreakBefore</strong></a> <em>str</em> <em>start</em>
|
||
</pre>
|
||
|
||
<h2>ОПИСАНИЕ</h2>
|
||
|
||
<p>Tcl содержит библиотеку Tcl-процедур общего назначения.</p>
|
||
|
||
<p>Местонахождение библиотеки Tcl можно получить с помощью команды
|
||
<a href= info.html#library><strong>info</strong>
|
||
<strong>library</strong></a>. Обычно, помимо этой библиотеки, приложения
|
||
имеют собственные библиотеки служебных процедур. Местонахождение
|
||
процедур приложения обычно содержит глобальная переменная
|
||
<strong></strong>, где <em>app</em> - имя приложения. Например,
|
||
для Tk это переменная <strong></strong>.</p>
|
||
|
||
<p>Для того, чтобы использовать процедуры из Tcl-библиотеки,
|
||
приложению необходимо прочитать файл <strong>init.tcl</strong> библиотеки,
|
||
например, командой</p>
|
||
<pre>
|
||
source [file join [info library] init.tcl]
|
||
</pre>
|
||
<p>Если в приложении процедура <strong>Tcl_AppInit</strong> вызывает
|
||
библиотечную процедуру <strong>Tcl_Init</strong>, то такая команда
|
||
выполняется автоматически. Код в файле <strong>init.tcl</strong> определит
|
||
процедуру <a href=unknown.html><strong>unknown</strong></a> и
|
||
позволит остальным процедурам загружаться по требованию при
|
||
помощи механизма автозагрузки, описанного ниже. </p>
|
||
|
||
<h2>КОМАНДНЫЕ ПРОЦЕДУРЫ</h2>
|
||
|
||
<p>Библиотека Tcl предоставляет пользователю следующие
|
||
процедуры:</p>
|
||
|
||
<dl>
|
||
|
||
<dt><a name=auto_execok></a><strong>auto_execok</strong> <em>cmd</em></dt>
|
||
|
||
<dd>Эта команда просматривает каталоги в текущем пути поиска
|
||
(заданном переменной окружения PATH) и проверяет, есть ли в
|
||
каталогах исполняемый файл по имени <em>cmd</em>. Если файл
|
||
присутствует, то команда возвращает <strong>1</strong>, если нет - то
|
||
<strong>0</strong>. Команда запоминает сведения о предыдущем поиске в
|
||
массиве <em>auto_execs</em>, это позволяет обходиться без поиска
|
||
в каталогах при последующих вызовах этой же команды. Для
|
||
удаления из памяти этой информации можно использовать команду
|
||
<strong>auto_reset</strong>.
|
||
</dd>
|
||
|
||
<dt><a name=auto_load></a><strong>auto_load</strong> <em>cmd</em></dt>
|
||
|
||
<dd><p>Эта команда загружает определение для Tcl-команды
|
||
<em>cmd</em>. Для этого она просматривает путь автозагрузки,
|
||
являющийся списком из одного или более каталогов. Он
|
||
содержится в глобальной переменной <strong>auto_path</strong>, если
|
||
она существует. В противном случае используется переменная
|
||
окружения TCLLIBPATH. Если же и она не существует, список
|
||
автозагрузки состоит из каталога, в котором находится
|
||
Tcl-библиотека.</p>
|
||
|
||
<p>В каждом из каталогов, входящих в путь автозагрузки, должен
|
||
находиться файл <strong>tclIndex</strong>, список команд, определенных
|
||
в этом каталоге, и скрипты для загрузки каждой команды. Файл
|
||
<strong>tclIndex</strong> должен быть создан с помощью команды
|
||
<strong>auto_mkindex</strong>.</p>
|
||
|
||
<p>Если команда была успешно загружена, то <strong>auto_load</strong>
|
||
возвращает <strong>1</strong>. Команда возвращает <strong>0</strong>, если
|
||
нужная команда не была найдена в списках команд или
|
||
указанная команда загрузки не позволила создать команду
|
||
(например, если файл <strong>tclIndex</strong> устарел). Если при
|
||
выполнении указанного загрузочного скрипта возникла ошибка,
|
||
команда возвращает ошибку.</p>
|
||
|
||
<p>Команда <strong>auto_load</strong> читает индексные файлы только один
|
||
раз и сохраняет полученную информацию в массиве
|
||
<strong>auto_index</strong>. При последующих обращениях к команде
|
||
<strong>auto_load</strong> сначала проверяется массив и только если
|
||
информация о процедуре не найдена, приступает к просмотру
|
||
индексных файлов. Эта информация может быть удалена с
|
||
помощью команды <strong>auto_reset</strong>. После команды
|
||
<strong>auto_reset</strong> следующий вызов <strong>auto_load</strong> к
|
||
повторному чтению индексных файлов.</p>
|
||
</dd>
|
||
|
||
<dt><a name=auto_mkindex></a><strong>auto_mkindex</strong> <em>dir</em>
|
||
<em>pattern</em> <em>pattern</em>...</dt>
|
||
|
||
<dd><p>Команда создает индекс для использования его командой
|
||
<strong>auto_load</strong>. Для этого команда просматривает каталог
|
||
<em>dir</em> в поисках файлов с именами, удовлетворяющими
|
||
аргументам <em>pattern</em> (сравнение выполняется командой <a
|
||
href=glob.html><strong>glob</strong></a>), и создает индекс всех
|
||
командных процедур Tcl, определенных в обнаруженных файлах,
|
||
и сохраняет индекс в файле <strong>tclIndex</strong> в этой
|
||
<em>dir</em>. Если не задано ни одного шаблона <em>pattern</em>,
|
||
то по умолчанию принимается <strong>*.tcl</strong>. Например,
|
||
команда</p>
|
||
<pre>
|
||
auto_mkindex foo *.tcl
|
||
</pre>
|
||
<p>просматривает все <strong>.tcl</strong>-файлы в каталоге <strong>foo</strong> и
|
||
создает новый индексный файл <strong>foo/tclIndex</strong>.</p>
|
||
|
||
<p>Команда <strong>auto_mkindex</strong> просматривает Tcl-скрипты очень
|
||
простым способом: если в очередной строке, начиная с первого
|
||
символа, написано слово <a href=
|
||
proc.html><strong>proc</strong></a>, считается, что это
|
||
определение процедуры, а следующее слово есть имя
|
||
процедуры. Процедуры, определение которых не подходит под
|
||
описанное (например, если перед словом <strong><a href=
|
||
proc.html>proc</a></strong> стоят пробелы), не попадают в
|
||
индексный файл.</p>
|
||
</dd>
|
||
|
||
<dt><a name=auto_reset></a><strong>auto_reset</strong></dt>
|
||
|
||
<dd>Команда удаляет всю информацию, накопленную командами
|
||
<strong>auto_execok</strong> и <strong>auto_load</strong>. При следующем обращении
|
||
к этой информации она будет считана с диска заново. Эта
|
||
команда также удаляет все процедуры, перечисленные в массиве
|
||
<strong>auto_index</strong>, так что при следующем обращении к ним будут
|
||
загружены новые копии.
|
||
</dd>
|
||
|
||
<dt><a name=parray></a><strong>parray</strong> <em>arrayName</em></dt>
|
||
|
||
<dd>Команда выдает на стандартный выход имена и значения
|
||
элементов массива <em>arrayName</em>. Массив должен быть
|
||
доступен в контексте вызова. Он может быть как локальным, так
|
||
и глобальным.
|
||
</dd>
|
||
|
||
<dt><a name=tcl_endOfWord></a><strong>tcl_endOfWord</strong> <em>str</em>
|
||
<em>start</em></dt>
|
||
|
||
<dd>Возвращает индекс первого конца слова после указанного
|
||
индекса <em>start</em> в строке <em>str</em>. Первым концом слова
|
||
считается первый символ, не принадлежащий слову, следующий за
|
||
первым после начальной точки символом слова. Возвращает
|
||
<strong>-1</strong>, если после начальной точки больше нет концов
|
||
слова. Способ распознавания символов слов, используемый в Tcl,
|
||
приведен в описании переменных <strong>tcl_wordchars</strong> и
|
||
<strong>tcl_nonwordchars</strong>.
|
||
</dd>
|
||
|
||
<dt><a name=tcl_startOfNextWord></a><strong>tcl_startOfNextWord</strong>
|
||
<em>str</em> <em>start</em></dt>
|
||
|
||
<dd>Возвращает индекс первого начала слова после указанного
|
||
индекса <em>start</em> в строке <em>str</em>. Первым началом слова
|
||
считается первый символ слова, следующий за символом, не
|
||
принадлежащим слову. Возвращает <strong>-1</strong>, если после
|
||
начальной точки больше нет начала слова.
|
||
</dd>
|
||
|
||
<dt><a name=tcl_startOfPreviousWord></a>
|
||
<strong>tcl_startOfPreviousWord</strong> <em>str</em> <em>start</em></dt>
|
||
|
||
<dd>Возвращает индекс первого начала слова до указанного
|
||
индекса <em>start</em> в строке <em>str</em>. Возвращает
|
||
<strong>-1</strong>, если после начальной точки больше нет начала
|
||
слова.
|
||
</dd>
|
||
|
||
<dt><a name=tcl_wordBreakAfter></a>
|
||
<strong>tcl_wordBreakAfter</strong><em>str</em> <em>start</em></dt>
|
||
|
||
<dd>Возвращает индекс первой границы слова после указанного
|
||
индекса <em>start</em> в строке <em>str</em>. Возвращает
|
||
<strong>-1</strong>, если в указанной строке после начальной точки
|
||
больше нет границ слова. Возвращаемый индекс относится ко
|
||
второму символу пары, образующей границу.
|
||
</dd>
|
||
|
||
<dt><a name=tcl_wordBreakBefore></a>
|
||
<strong>tcl_wordBreakBefore</strong> <em>str</em> <em>start</em></dt>
|
||
|
||
<dd>Возвращает индекс первой границы слова до указанного
|
||
индекса <em>start</em> в строке <em>str</em>. Возвращает
|
||
<strong>-1</strong>, если в указанной строке до начальной точки
|
||
больше нет границ слова. Возвращаемый индекс относится ко
|
||
второму символу пары, образующей границу.
|
||
</dd>
|
||
</dl>
|
||
|
||
<h2>ПЕРЕМЕННЫЕ</h2>
|
||
|
||
<p>Процедуры Tcl используют или определяют следующие глобальные
|
||
переменные.</p>
|
||
|
||
<p><strong>auto_execs</strong> - используется командой <strong>auto_execok</strong>
|
||
для записи информации о том, существуют ли конкретная команда в
|
||
виде исполняемого файла.</p>
|
||
|
||
<p><strong>auto_index</strong> - используется <strong>auto_load</strong> для
|
||
сохранения индексной информации, считанной с диска.</p>
|
||
|
||
<p><strong>auto_noexec</strong> - если переменная задана с любым значением,
|
||
то команда <a href=unknown.html><strong>unknown</strong></a> не
|
||
будет пытаться автоматически исполнить какую-либо команду.</p>
|
||
|
||
<p><strong>auto_noload</strong> - если переменная задана с любым значением,
|
||
то команда <a href=unknown.html><strong>unknown</strong></a> не
|
||
будет пытаться автоматически загрузить какую-либо команду.</p>
|
||
|
||
<p><strong>auto_path</strong> - если переменная задана, то она должна
|
||
содержать Tcl-список с каталогами для просмотра при операциях
|
||
автозагрузки.</p>
|
||
|
||
<p><strong>env(TCL_LIBRARY)</strong> - если переменная задана, то она
|
||
указывает местоположение каталога с библиотечными скриптами
|
||
(команда <a href=info.html#library><strong>info</strong>
|
||
<strong>library</strong></a> возвращает значение этой переменной). Если
|
||
переменная не определена, то используется значение по
|
||
умолчанию.</p>
|
||
|
||
<p><strong>env(TCLLIBPATH)</strong> - если переменная задана, то она должна
|
||
содержать действующий Tcl список каталогов для поиска при
|
||
операциях автозагрузки. Эта переменная используется только
|
||
тогда, когда не определена переменная <strong>auto_path</strong>.</p>
|
||
|
||
<p><strong>tcl_nonwordchars</strong> - переменная содержит регулярное
|
||
выражение, используемое такими процедурами, как
|
||
<strong>tcl_endOfWord</strong> для определения, является ли символ частью
|
||
слова или нет. Если образец соответствует символу, то символ
|
||
считается не принадлежащим к слову. В Unix такими символами
|
||
являются все символы, кроме цифр, букв и символа
|
||
подчеркивания.</p>
|
||
|
||
<p><strong>tcl_wordchars</strong> - переменная содержит регулярное
|
||
выражение, используемое такими процедурами, как
|
||
<strong>tcl_endOfWord</strong> для определения, является ли символ частью
|
||
слова или нет. Если образец соответствует символу, то символ
|
||
считается частью слова. В Unix слова состоят из цифр, букв и
|
||
символа подчеркивания.</p>
|
||
|
||
<p><strong>unknown_active</strong> - эта переменная служит флагом для
|
||
индикации активности команды <a
|
||
href=unknown.html><strong>unknown</strong></a>: команда сама
|
||
устанавливает ее. Переменная используется для выявления ошибок,
|
||
при которых <a href=unknown.html><strong>unknown</strong></a>
|
||
бесконечно рекурсивно обращается к себе. Перед окончанием работы
|
||
<a href=unknown.html><strong>unknown</strong></a> переменная
|
||
сбрасывается.</p>
|
||
</body>
|
||
</html>
|
||
|