2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>library</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>library</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команды стандартной библиотеки процедур Tcl.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>СИНТАКСИС</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>ОПИСАНИЕ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Tcl содержит библиотеку Tcl-процедур общего назначения.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Местонахождение библиотеки Tcl можно получить с помощью команды
|
|
|
|
|
<a href= info.html#library><strong>info</strong>
|
|
|
|
|
<strong>library</strong></a>. Обычно, помимо этой библиотеки, приложения
|
|
|
|
|
имеют собственные библиотеки служебных процедур. Местонахождение
|
|
|
|
|
процедур приложения обычно содержит глобальная переменная
|
|
|
|
|
<strong></strong>, где <em>app</em> - имя приложения. Например,
|
|
|
|
|
для Tk это переменная <strong></strong>.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Для того, чтобы использовать процедуры из Tcl-библиотеки,
|
|
|
|
|
приложению необходимо прочитать файл <strong>init.tcl</strong> библиотеки,
|
|
|
|
|
например, командой</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<pre>
|
|
|
|
|
source [file join [info library] init.tcl]
|
|
|
|
|
</pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если в приложении процедура <strong>Tcl_AppInit</strong> вызывает
|
|
|
|
|
библиотечную процедуру <strong>Tcl_Init</strong>, то такая команда
|
|
|
|
|
выполняется автоматически. Код в файле <strong>init.tcl</strong> определит
|
|
|
|
|
процедуру <a href=unknown.html><strong>unknown</strong></a> и
|
|
|
|
|
позволит остальным процедурам загружаться по требованию при
|
|
|
|
|
помощи механизма автозагрузки, описанного ниже. </p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>КОМАНДНЫЕ ПРОЦЕДУРЫ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Библиотека Tcl предоставляет пользователю следующие
|
|
|
|
|
процедуры:</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=auto_execok></a><strong>auto_execok</strong> <em>cmd</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Эта команда просматривает каталоги в текущем пути поиска
|
|
|
|
|
(заданном переменной окружения PATH) и проверяет, есть ли в
|
|
|
|
|
каталогах исполняемый файл по имени <em>cmd</em>. Если файл
|
|
|
|
|
присутствует, то команда возвращает <strong>1</strong>, если нет - то
|
|
|
|
|
<strong>0</strong>. Команда запоминает сведения о предыдущем поиске в
|
|
|
|
|
массиве <em>auto_execs</em>, это позволяет обходиться без поиска
|
|
|
|
|
в каталогах при последующих вызовах этой же команды. Для
|
|
|
|
|
удаления из памяти этой информации можно использовать команду
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>auto_reset</strong>.
|
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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> должен быть создан с помощью команды
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>auto_mkindex</strong>.</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=auto_mkindex></a><strong>auto_mkindex</strong> <em>dir</em>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<em>pattern</em> <em>pattern</em>...</dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<pre>
|
|
|
|
|
auto_mkindex foo *.tcl
|
|
|
|
|
</pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=auto_reset></a><strong>auto_reset</strong></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Команда удаляет всю информацию, накопленную командами
|
|
|
|
|
<strong>auto_execok</strong> и <strong>auto_load</strong>. При следующем обращении
|
|
|
|
|
к этой информации она будет считана с диска заново. Эта
|
|
|
|
|
команда также удаляет все процедуры, перечисленные в массиве
|
|
|
|
|
<strong>auto_index</strong>, так что при следующем обращении к ним будут
|
|
|
|
|
загружены новые копии.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=parray></a><strong>parray</strong> <em>arrayName</em></dt>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Команда выдает на стандартный выход имена и значения
|
|
|
|
|
элементов массива <em>arrayName</em>. Массив должен быть
|
|
|
|
|
доступен в контексте вызова. Он может быть как локальным, так
|
|
|
|
|
и глобальным.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=tcl_endOfWord></a><strong>tcl_endOfWord</strong> <em>str</em>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<em>start</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Возвращает индекс первого конца слова после указанного
|
|
|
|
|
индекса <em>start</em> в строке <em>str</em>. Первым концом слова
|
|
|
|
|
считается первый символ, не принадлежащий слову, следующий за
|
|
|
|
|
первым после начальной точки символом слова. Возвращает
|
|
|
|
|
<strong>-1</strong>, если после начальной точки больше нет концов
|
|
|
|
|
слова. Способ распознавания символов слов, используемый в Tcl,
|
|
|
|
|
приведен в описании переменных <strong>tcl_wordchars</strong> и
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>tcl_nonwordchars</strong>.
|
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=tcl_startOfNextWord></a><strong>tcl_startOfNextWord</strong>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<em>str</em> <em>start</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Возвращает индекс первого начала слова после указанного
|
|
|
|
|
индекса <em>start</em> в строке <em>str</em>. Первым началом слова
|
|
|
|
|
считается первый символ слова, следующий за символом, не
|
|
|
|
|
принадлежащим слову. Возвращает <strong>-1</strong>, если после
|
|
|
|
|
начальной точки больше нет начала слова.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=tcl_startOfPreviousWord></a>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>tcl_startOfPreviousWord</strong> <em>str</em> <em>start</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Возвращает индекс первого начала слова до указанного
|
|
|
|
|
индекса <em>start</em> в строке <em>str</em>. Возвращает
|
|
|
|
|
<strong>-1</strong>, если после начальной точки больше нет начала
|
|
|
|
|
слова.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=tcl_wordBreakAfter></a>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>tcl_wordBreakAfter</strong><em>str</em> <em>start</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Возвращает индекс первой границы слова после указанного
|
|
|
|
|
индекса <em>start</em> в строке <em>str</em>. Возвращает
|
|
|
|
|
<strong>-1</strong>, если в указанной строке после начальной точки
|
|
|
|
|
больше нет границ слова. Возвращаемый индекс относится ко
|
|
|
|
|
второму символу пары, образующей границу.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dt><a name=tcl_wordBreakBefore></a>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<strong>tcl_wordBreakBefore</strong> <em>str</em> <em>start</em></dt>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<dd>Возвращает индекс первой границы слова до указанного
|
|
|
|
|
индекса <em>start</em> в строке <em>str</em>. Возвращает
|
|
|
|
|
<strong>-1</strong>, если в указанной строке до начальной точки
|
|
|
|
|
больше нет границ слова. Возвращаемый индекс относится ко
|
|
|
|
|
второму символу пары, образующей границу.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|