78 lines
5.0 KiB
HTML
78 lines
5.0 KiB
HTML
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
||
<html>
|
||
<head>
|
||
<title>binary</title>
|
||
</head>
|
||
|
||
<body>
|
||
<h1>binary</h1>
|
||
|
||
<p>Команда вставляет и извлекает поля из двоичных строк.</p>
|
||
|
||
<pre>
|
||
<strong>binary</strong> <strong>format</strong> <em>formatString</em> ?<em>arg</em> <em>arg</em>...?
|
||
<strong>binary</strong> <strong>scan</strong> <em>string</em> <em>formatString</em> ?<em>varName</em> <em>varName</em>...?
|
||
</pre>
|
||
|
||
<h2>ОПИСАНИЕ</h2>
|
||
|
||
<p> Команда <strong>binary</strong> предоставляет средства для
|
||
манипулирования двоичными данными. Первая из форм команды
|
||
конвертирует обычные Tcl-значения <em>arg</em> в двоичное
|
||
число. Например, вызванная с аргументами <strong>16</strong> и <strong>22</strong>,
|
||
она вернет 8-байтовое двоичную строку, состоящую из двух
|
||
4-байтовых чисел, представляющих соответственно <strong>16</strong> и
|
||
<strong>22</strong>. Вторая форма команды выполняет обратное действие,
|
||
она извлекает из двоичной строки данные и возвращает их как
|
||
обычные Tcl строки.</p>
|
||
|
||
<dl>
|
||
<dt><a name=binary format></a><strong>binary</strong> <strong>format</strong></dt>
|
||
|
||
<dd><p>Команда <strong>binary format</strong> создает двоичную строку по
|
||
правилам, заданным с помощью шаблона <em>formatString</em>.
|
||
Содержание этой строки задается дополнительными аргументами
|
||
<em>arg</em>. Команда возвращает сформированную двоичную
|
||
строку.</p>
|
||
|
||
<p>Шаблон <em>formatString</em> содержит последовательность из
|
||
нуля или более спецификаторов преобразования, разделенных
|
||
одним или более пробелами. Каждый спецификатор
|
||
преобразования состоит из буквы, за которой может следовать
|
||
число count. Как правило, спецификатор использует один из
|
||
аргументов <em>arg</em> чтобы получить величину для
|
||
форматирования. Буква в спецификаторе указывает тип
|
||
преобразования (форматирования). Число <em>count</em> обычно
|
||
указывает сколько объектов для форматирования выбирается из
|
||
значения <em>arg</em>. Соответственно, <em>count</em> должно
|
||
быть неотрицательным десятичным числом. Если значение count
|
||
равно <strong>*</strong>, это обычно указывает, что надо использовать все
|
||
значение аргумента. Если число аргументов <em>arg</em> не
|
||
соответствует числу спецификаторов, требующих для себя
|
||
дополнительного аргумента, выдается ошибка.</p>
|
||
|
||
<p>Обычно результат каждого нового преобразования дописывается
|
||
в конец возвращаемой строки. Однако, с помощью специальных
|
||
спецификаторов точку ввода нового значения (курсор) можно
|
||
передвигать по формируемой строке.</p>
|
||
|
||
<p>Ниже приведены допустимые значения спецификаторов
|
||
преобразований и описаны соответствующие преобразования.</p>
|
||
|
||
<dl>
|
||
|
||
<dt><strong>a</strong> ?<em>count</em>?</dt>
|
||
|
||
<dd><p>Передает в выходную строку <em>count</em> символов из
|
||
соответствующего аргумента <em>arg</em>. Если в <em>arg</em>
|
||
содержится меньше <em>count</em> байт, добавляются нулевые
|
||
байты. Если в <em>arg</em> содержится больше <em>count</em>
|
||
байт, "лишние" байты игнорируются. Если
|
||
<em>count</em> равно <strong>*</strong>, используются все байты из
|
||
<em>arg.</em> Если <em>count</em> отсутствует, используется
|
||
один байт. Например, команда</p>
|
||
<pre>
|
||
binary format a7a*a alpha bravo charlie
|
||
</pre>
|
||
<p>вернет строку, эквивалентную <strong> alpha
|