Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ida.final.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6 Mб
Скачать

Long GetNextIndex(long tag,long id,long idx);

Функция возвращает следующий индекс разраженного массива. Как уже было сказано выше, в разряженных массивах индексы не обязательно следуют друг за другом, а могут быть разделены «дырами» произвольного размера.

Поэтому, для «путешествия» по цепочке инициализированных элементов массива и была введена функция GetNextIndex.

Передаваемый текущий индекс (idx) не обязательно должен существовать в природе, - функция возвращает первый же инициализированный за ним элемент.

Это дает возможность отказаться от использования функции GetFirstIndex, поскольку GetNextIndex(,,0) ему полностью эквивалентен, что и показано на примере, приведенном ниже:

auto a,b;

b=0;

DeleteArray(GetArrayId("MyArray"));

a=CreateArray("MyArray");

SetArrayLong(a,0x100,0x666);

SetArrayLong(a,0x77,0x67);

SetArrayLong(a,0x210,0x777);

while(1)

{

b=GetNextIndex(AR_LONG,a,b);

if (b==-1) break;

Message("0x%X \n",b);

}

DeleteArray(a);

0x77

0x100

0x210

Операнд

Пояснения

tag

==tag

Значение

AR_STR

Элемент типа «строка»

AR_LONG

Элемент типа «длинное целое»

id

Идентификатор массива

idx

Индекс массива

Return

==return

Пояснения

!=BADADDR

Следующий индекс

==BADADDR

Ошибка

Long GetPrevIndex(long tag,long id,long idx)

Функция возвращает предыдущий индекс разраженного массива. Как уже было сказано выше, в разряженных массивах индексы не обязательно следуют друг за другом, а могут быть разделены «дырами» произвольного размера.

Поэтому, для «путешествия» по цепочке инициализированных элементов массива и была введена функция GetPrevIndex.

Передаваемый текущий индекс (idx) не обязательно должен существовать в природе, - функция возвращает первый же предшествующий ему инициализированный элемент.

Это дает возможность отказаться от использования функции GetPrevIndex, поскольку GetPrevIndex(,,-1) ему полностью эквивалентен, что и показано на примере, приведенном ниже:

auto a,b;

b=0;

DeleteArray(GetArrayId("MyArray"));

a=CreateArray("MyArray");

SetArrayLong(a,0x100,0x666);

SetArrayLong(a,0x77,0x67);

SetArrayLong(a,0x210,0x777);

while(1)

{

b=GetPrevIndex(AR_LONG,a,b);

if (b==-1) break;

Message("0x%X \n",b);

}

DeleteArray(a);

0x210

0x100

0x77

Операнд

Пояснения

tag

==tag

Значение

AR_STR

Элемент типа «строка»

AR_LONG

Элемент типа «длинное целое»

id

Идентификатор массива

idx

Индекс массива

Return

==return

Пояснения

!=BADADDR

Предыдущий индекс

==BADADDR

Ошибка

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]