<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
  <head>
    <title>array</title>
  </head>
  <body>
    <h1>array</h1>
     
    <pre>
      <strong>array</strong> <em>option</em> <em>arrayName</em> ?<em>arg</em> <em>arg</em>...?
      <a href=#anymore><strong>array</strong> <strong>anymore</strong></a> <em>arrayName</em> <em>searchId</em>
      <a href=#donesearch><strong>array</strong> <strong>donesearch</strong></a> <em>arrayName</em> <em>searchId</em>
      <a href=#exists><strong>array</strong> <strong>exists</strong></a> <em>arrayName</em>
      <a href=#get><strong>array</strong> <strong>get</strong></a> <em>arrayName</em> ?<em>pattern</em>?
      <a href=#names><strong>array</strong> <strong>names</strong></a> <em>arrayName</em> ?<em>pattern</em>?
      <a href=#nextelement><strong>array</strong> <strong>nextelement</strong></a> <em>arrayName</em> <em>searchId</em>
      <a href=#set><strong>array</strong> <strong>set</strong></a> <em>arrayName</em> <em>list</em>
      <a href=#size><strong>array</strong> <strong>size</strong></a> <em>arrayName</em>
      <a href=#startsearch><strong>array</strong> <strong>startsearch</strong></a> <em>arrayName</em>
    </pre>

    <h2>ОПИСАНИЕ</h2> 

    <p> Эта команда предназначена для выполнения перечисленных ниже
      операций с массивами. Если иное не оговорено специально,
      <em>arrayName</em> должно быть именем существующего массива.
      Аргумент <em>option</em> определяет конкретную операцию. Для
      команды определены перечисленные ниже опции.</p>
    <dl>
      <dt><a name=anymore></a><strong>array</strong> <strong>anymore</strong>
	<em>arrayName</em> <em>searchId</em></dt>

      <dd> Возвращает <strong>1</strong> если при выполнении команды поиска (см.
        ниже) остались невыбранные элементы массива, и <strong>0</strong> в
        противном случае. <em>SearchId</em> указывает операцию поиска,
        информация о которой запрашивается (величина <em> searchId</em>
        возвращается при выполнении команды <a
        href=#startsearch><strong>array</strong> <strong>startsearch</strong></a>). Эта
        опция особенно удобна, если массив содержит элемент с пустым
        именем, поскольку команда <a href=#nextelement><strong>array</strong>
        <strong>nextelement</strong></a> не позволяет в таком случае определить,
        закончен ли поиск.
      </dd>

      <dt><a name=donesearch></a><strong>array</strong>
	<strong>donesearch</strong> <em>arrayName</em> <em>searchId</em></dt>

      <dd> Команда прерывает поиск элементов массива и удаляет всю
        связанную с поиском информацию. <em>SearchId</em> указывает
        операцию поиска, информация о которой удаляется (величина
        <em>searchId</em> возвращается при выполнении команды <a
        href=#startsearch><strong>array</strong>
        <strong>startsearch</strong></a>).  Команда возвращает пустую строку.
      </dd>

      <dt><a name=exists></a><strong>array</strong> <strong>exists</strong>
	<em>arrayName</em> </dt>

      <dd> Возвращает <strong>1</strong>, если <em>arrayName</em> есть имя
        массива, и <strong>0</strong>, если такой переменной не существует
        или она является скалярной переменной.
      </dd>
      
      <dt><a name=get></a><strong>array</strong> <strong>get</strong>
	<em>arrayName</em> ?<em>pattern</em>?</dt>

      <dd> Возвращает список, содержащий пары элементов. Первый
        элемент пары - имя элемента массива <em>arrayName</em>, второй
        элемент пары - значение этого элемента. Порядок пар не
        определен. Если шаблон не задан, то все элементы массива будут
        включены в результат. Если шаблон задан, то в результат будут
        включены только те элементы, чьи имена соответствуют шаблону
        (используя те же правила, что и в команде <a
        href=glob.html><strong>glob</strong></a>). Если <em>arrayName</em>
        не является переменной массива или массив не содержит
        элементов, то возвращается пустой список.
      </dd>
      
      <dt><a name=names></a><strong>array</strong> <strong>names</strong>
	<em>arrayName</em> ?<em>pattern</em>? </dt>

      <dd> Возвращает список, содержащий имена всех элементов массива,
        соответствующих шаблону (используя те же правила, что и в
        команде <a href=glob.html><strong>glob</strong></a>). Если шаблона
        нет, то команда возвращает имена всех элементов массива. Если
        в массиве нет элементов, соответствующих шаблону или
        <em>arrayName</em> не является именем переменной массива, то
        возвращается пустая строка.
      </dd>

      <dt><a name=nextelement></a><strong>array</strong>
	<strong>nextelement</strong> <em>arrayName</em> <em>searchId</em></dt>

      <dd> Возвращает имя следующего элемента массива
	<em>arrayName</em>, или пустую строку, если все элементы массива
	уже возвращены. <em>SearchId</em> указывает операцию поиска,
	(величина <em>searchId</em> возвращается при выполнении команды
	<a href=#startsearch><strong>array</strong>
	<strong>startsearch</strong></a>). Предупреждение: если в массив внесен
	новый элемент или из массива удален один из элементов, то все
	операции поиска в этом массиве автоматически заканчиваются,
	как если бы была выполнена команда <a
	href=#donesearch><strong>array</strong> <strong>donesearch</strong></a>.
	Соответственно, попытка выполнить после этого команду array
	nextelement приведет к ошибке.
      </dd>

      <dt><a name=set></a><strong>array</strong> <strong>set</strong>
	<em>arrayName</em> <em>list</em> </dt>

      <dd> Устанавливает значение одного или нескольких элементов
        массива <em>arrayName</em>. Список <em>list</em> должен иметь
        такую же структуру, как список, возвращаемый командой <a
        href=#get><strong>array</strong> <strong>get</strong></a>, то есть
        состоять из четного числа элементов. Все нечетные элементы
        списка рассматриваются как имена элементов массива
	<em>arrayName</em>, а следующие за ними четные элементы - как новые
        значения соответствующих элементов.
      </dd>

      <dt><a name=size></a><strong>array</strong> <strong>size</strong>
	<em>arrayName</em> </dt>

      <dd> Возвращает строку, содержащую десятичное число, равное
        количеству элементов указанного массива. Если
	<em>arrayName</em> не является именем массива, возвращается
        <strong>0</strong>.
      </dd>

      <dt><a name=startsearch></a><strong>array</strong>
	<strong>startsearch</strong> <em>arrayName</em></dt>

      <dd> Эта команда инициализирует процесс поиска элементов
        указанного массива. После этого имя каждого следующего
        элемента массива можно получить с помощью команды <a
        href=#nextelement><strong>array</strong> <strong>nextelement</strong></a>. По
        завершении поиска необходимо выполнить команду <a
        href=#donesearch> <strong>array</strong>
        <strong>donesearch</strong></a>. Команда <a href=
        #startsearch><strong>array</strong> <strong>startsearch</strong></a> возвращает
        идентификатор процесса поиска, который должен использоваться в
        командах <a href=#nextelement><strong>array</strong>
        <strong>nextelement</strong></a> и <a href=#donesearch><strong>array</strong>
        <strong>donesearch</strong></a>.  Благодаря этому механизму возможно
        проведение нескольких процессов поиска элементов одного и того
        же массива одновременно.
      </dd>
    </dl>
  </body>
</html>