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>
 | ||
| 
 | 
