Встроенные команды ТCL


library

        Команды стандартной библиотеки процедур Tcl.

         Синтаксис
        auto_execok cmd

        auto_loadcmd

        automkindex dir pattern pattern ...

        auto_reset

        parray arrayName

        tcl_endOfWordstr start

        tcl_startOfNextWord str start

        tcl_startOfPreviousWord str start

        tcl_wordBreakAfter str start

        tcl_wordBreakBefore str start

        Описание

        Tcl содержит библиотеку Tcl-процедур общего назначения.

        Местонахождение библиотеки Tcl можно получить с помощью команды info library. Обычно, помимо этой библиотеки, приложения имеют собственные библиотеки служебных процедур. Местонахождение процедур приложения обычно содержит глобальная переменная $app_library, где арр — имя приложения. Например, для Тk это переменная $tk_library.

        Для того, чтобы использовать процедуры из Tcl-библиотеки, приложению необходимо прочитать файл init.tcl библиотеки, например, командой:

        source [file join [info library] init.tcl]

        Если в приложении процедура Tcl_AppInit вызывает библиотечную процедуру Tcl_Init, то такая команда выполняется автоматически. Код в файле init.tcl определит процедуру unknown и позволит остальным процедурам загружаться по требованию при помощи механизма автозагрузки.

        Библиотека Tcl предоставляет пользователю следующие процедуры:

auto_execok cmd
        Эта команда просматривает каталоги в текущем пути поиска (заданном переменной окружения PATH) и проверяет, есть ли в каталогах исполняемый файл по имени cmd. Если файл присутствует, то команда возвращает 1, если нет — то 0. Команда запоминает сведения о предыдущем поиске в массиве auto_execs, это позволяет обходиться без поиска в каталогах при последующих вызовах этой же команды. Для удаления из памяти этой информации можно использовать команду auto_reset.

auto_load cmd
        Эта команда загружает определение для Tcl-команды cmd. Для этого она просматривает путь автозагрузки, являющийся списком из одного или более каталогов. Он содержится в глобальной переменной auto_path, если она существует. В противном случае используется переменная окружения TCLLIBPATH. Если же и она не существует, список автозагрузки состоит из каталога, в котором находится Тсl-библиотека.

        В каждом из каталогов, входящих в путь автозагрузки, должен находиться файл tclIndex, список команд, определенных в этом каталоге, и скрипты для загрузки каждой команды. Файл tclIndex должен быть создан с помощью команды auto_mkindex.

        Если команда была успешно загружена, то auto_load возвращает 1. Команда возвращает 0, если нужная команда- не была найдена в списках команд или указанная команда загрузки не позволила создать команду (например, если файл tclIndex устарел). Если при выполнении указанного загрузочного скрипта возникла ошибка, команда возвращает ошибку.

        Команда autoload читает индексные файлы только один раз и сохраняет полученную информацию в массиве auto_index. При последующих обращениях к команде auto_load сначала проверяется массив и только если информация о процедуре не найдена, приступает к просмотру индексных файлов. Эта информация может быть удалена с помощью команды auto_reset. После команды auto_reset следующий вызов auto_load к повторному чтению индексных файлов.

auto_mkindexdir pattern pattern...
        Команда создает индекс для использования его командой auto_load. Для этого команда просматривает каталог dir в поисках файлов с именами, удовлетворяющими аргументам pattern (сравнение выполняется командой glob), и создает индекс всех командных процедур Tcl, определенных в обнаруженных файлах, и сохраняет индекс в файле tclIndex в этой dir. Если не задано ни одного шаблона pattern, то по умолчанию принимается *.tcl. Например, команда

        Auto_mkindex foo * tcl

просматривает все tcl-файлы в каталоге foo и создает новый индексный файл foo/tclIndex.

        Команда auto_mkindex просматривает Tcl-скрипты очень простым способом: если в очередной строке, начиная с первого символа, написано слово рrос, считается, что это определение процедуры, а следующее слово есть имя процедуры. Процедуры, определение которых не подходит под описанное (например, если перед словом рrос стоят пробелы), не попадают в индексный файл.

auto_reset
        Команда удаляет всю информацию, накопленную командами auto_execok и auto_load. При следующем обращении к этой информации она будет считана с диска заново. Эта команда также удаляет все процедуры, перечисленные в массиве auto_index, так что при следующем обращении к ним будут загружены новые копии.

parrayarrayName
        Команда выдает на стандартный выход имена и значения элементов массива arrayName. Массив должен быть доступен в. контексте вызова. Он может быть как локальным, так и глобальным.

tcl_endOfWord str start
        Возвращает индекс первого конца слова после указанного индекса start в строке str. Первым концом слова считается первый символ, не принадлежащий слову, следующий за первым после начальной точки символом слова. Возвращает -1, если после начальной точки больше нет концов слова.

tcl_startOfNextWordstr start
        Возвращает индекс первого начала слова после указанного индекса start в строке str. Первым началом слова считается первый символ слова, следующий за символом, не принадлежащим слову. Возвращает -1, если после начальной точки больше нет начала слова.

tcl_startOfPreviousWordstr start
        Возвращает индекс первого начала слова до указанного индекса start в строке str. Возвращает -1, если после начальной точки больше нет начала слова.

tcl_wordBreakAfterstr start
        Возвращает индекс первой границы слова после указанного индекса start в строке str. Возвращает -1, если в указанной строке после начальной точки больше нет границ слова. Возвращаемый индекс относится ко второму символу пары, образующей границу.

tcl_wordBreakBeforestr start
        Возвращает индекс первой границы слова до указанного индекса start в строке str. Возвращает -1, если в указанной строке до начальной точки больше нет границ слова. Возвращаемый индекс относится ко второму символу пары, образующей границу.

        Процедуры Tcl используют или определяют следующие глобальные переменные.

        auto_execs — используется командой auto_execok для записи информации о том, существуют ли конкретная команда в виде исполняемого файла.

        auto_index — используется auto_load для сохранения индексной информации, считанной с диска.

        auto_noexec — если переменная задана с любым значением, то команда unknown не будет пытаться автоматически исполнить какую-либо команду.

        auto_noload — если переменная задана с любым значением, то команда unknown не будет пытаться автоматически загрузить какую-либо команду.

        auto_path — если переменная задана, то она должна содержать Tcl-список с каталогами для просмотра при операциях автозагрузки.

        env(TCL_LIBRARY) — если переменная задана, то она указывает местоположение каталога с библиотечными скриптами (команда info library возвращает значение этой переменной). Если переменная не определена, то используется значение по умолчанию.

        env(TCLLIBPATH) — если переменная задана, то она должна содержать действующий Tcl список каталогов для поиска при операциях автозагрузки. Эта переменная используется только тогда, когда не определена переменная auto_path.

        tcl_nonwordchars — переменная содержит регулярное выражение, используемое такими процедурами, как tcl_endOfWord для определения, является ли символ частью слова или нет. Если образец соответствует символу, то символ считается не принадлежащим к слову. В Unix такими символами являются все символы, кроме цифр, букв и символа подчеркивания.

        tcl_wordchars — переменная содержит регулярное выражение, используемое такими процедурами, как tcl_endOfWord для определения, является ли символ частью слова или нет. Если образец соответствует символу, то символ считается частью слова. В Unix слова состоят из цифр, букв и символа подчеркивания.

        unknown_active — эта переменная служит флагом для индикации активности команды unknown: команда сама устанавливает ее. Переменная используется для выявления ошибок, при которых unknown бесконечно рекурсивно обращается к себе. Перед окончанием работы unknown переменная сбрасывается.
Hosted by uCoz