projman/hlp/ru/tcl/binary.html

78 lines
5.0 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
2015-10-19 13:27:31 +03:00
<html>
<head>
<title>binary</title>
</head>
<body>
<h1>binary</h1>
<p>Команда вставляет и извлекает поля из двоичных строк.</p>
2015-10-19 13:27:31 +03:00
<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>
2015-10-19 13:27:31 +03:00
<p> Команда <strong>binary</strong> предоставляет средства для
манипулирования двоичными данными. Первая из форм команды
конвертирует обычные Tcl-значения <em>arg</em> в двоичное
число. Например, вызванная с аргументами <strong>16</strong> и <strong>22</strong>,
она вернет 8-байтовое двоичную строку, состоящую из двух
4-байтовых чисел, представляющих соответственно <strong>16</strong> и
<strong>22</strong>. Вторая форма команды выполняет обратное действие,
она извлекает из двоичной строки данные и возвращает их как
обычные Tcl строки.</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><a name=binary format></a><strong>binary</strong> <strong>format</strong></dt>
2015-10-19 13:27:31 +03:00
<dd><p>Команда <strong>binary format</strong> создает двоичную строку по
правилам, заданным с помощью шаблона <em>formatString</em>.
Содержание этой строки задается дополнительными аргументами
<em>arg</em>. Команда возвращает сформированную двоичную
строку.</p>
2015-10-19 13:27:31 +03:00
<p>Шаблон <em>formatString</em> содержит последовательность из
нуля или более спецификаторов преобразования, разделенных
одним или более пробелами. Каждый спецификатор
преобразования состоит из буквы, за которой может следовать
число count. Как правило, спецификатор использует один из
аргументов <em>arg</em> чтобы получить величину для
форматирования. Буква в спецификаторе указывает тип
преобразования (форматирования). Число <em>count</em> обычно
указывает сколько объектов для форматирования выбирается из
значения <em>arg</em>. Соответственно, <em>count</em> должно
быть неотрицательным десятичным числом. Если значение count
равно <strong>*</strong>, это обычно указывает, что надо использовать все
значение аргумента. Если число аргументов <em>arg</em> не
соответствует числу спецификаторов, требующих для себя
дополнительного аргумента, выдается ошибка.</p>
2015-10-19 13:27:31 +03:00
<p>Обычно результат каждого нового преобразования дописывается
в конец возвращаемой строки. Однако, с помощью специальных
спецификаторов точку ввода нового значения (курсор) можно
передвигать по формируемой строке.</p>
2015-10-19 13:27:31 +03:00
<p>Ниже приведены допустимые значения спецификаторов
преобразований и описаны соответствующие преобразования.</p>
2015-10-19 13:27:31 +03:00
<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>
байт, &quot;лишние&quot; байты игнорируются. Если
<em>count</em> равно <strong>*</strong>, используются все байты из
<em>arg.</em> Если <em>count</em> отсутствует, используется
один байт. Например, команда</p>
2015-10-19 13:27:31 +03:00
<pre>
binary format a7a*a alpha bravo charlie
</pre>
<p>вернет строку, эквивалентную <strong> alpha