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
 | 
