getindexfromhash

Функция поиска индекса строки в списке строк в соответствии с хэш-таблицей.

Синтаксис:

indx = getindexfromhash(h_id, str);

Аргументы:

Имя Тип данных Описание
h_id integer Идентификатор хэш-таблицы, в которой осуществляется поиск
str string Строка, поиск которой осуществляется

Описание:

getindexfromhash(h_id, str) – функция осуществляет поиск индекса строки str в списке строк в соответствии с хэш-таблице h_id. Хэш-таблицы предназначены для обеспечения ускорения поиска идентификатора в списке строк.

Результат:

Имя Тип данных Описание
indx integer Индекс в списке строк

Пример:

var 
s_01: string = "string1" + chr(10) + "string2",
s_02: string = "string1";
//создание списка строк
slist = createstringlist;
//загрузим строку s_01 в список
settextstringlist(slist, s_01);
//добавим строку s_02 в список 
i = addstringlist(slist, s_02, 0);
//создадим хэш-таблицу
hasht = createstringlisthash(slist, 4095);
//получим индекс строки
index = getindexfromhash(hasht, "string1");
//уничтожим список 
freeobject(slist);
//уничтожим хэш-таблицу
freeobject(hasht);

В процессе выполнения примера при помощи функции createstringlist будет создан список строк с идентификатором slist. В список строк slist при помощи функции settextstringlist будет загружена строка, объявленная с разделителем «перевод строки», в результате чего переменная slist будет содержать идентификатор списка строк “”string1”“string2””. Далее, при помощи функции addstringlist в список строк с идентификатором slist будет загружена строка “string1”. В результате переменная slist будет содержать идентификатор списка строк “”string1”“string2”“string1””, переменной i будет присвоено значение 2. При помощи функции createstringlisthash будет создана хэш-таблица с идентификатором hasht для списка строк с идентификатором slist. При помощи функции getindexfromhash будет получен индекс строки “string1” в списке строк slist, переменной index будет присвоено значение 0. Перед завершением примера список строк и хэш-таблица удаляются при помощи функции freeobject.

Дополнительные материалы

Нет.