Функция поиска индексов строки в списке строк в соответствии с хэш-таблицей.
indx = getindexesfromhash(h_id, str);
h_id – идентификатор хэш-таблицы, в которой осуществляется поиск,
str – строка, поиск которой осуществляется.
getindexesfromhash(h_id, str) – функция осуществляет поиск индексов строки str в списке строк в соответствии с хэш-таблице h_id. Хэш-таблицы предназначены для обеспечения ускорения поиска идентификатора в списке строк.
indx – массив индексов в списке строк.
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); //получим индексы строки indexes = getindexesfromhash(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. При помощи функции getindexesfromhash будет получен массив индексов строки “string1” в списке строк slist, переменной indexes будет присвоено значение массива [0, 2]. Перед завершением примера список строк и хэш-таблица удаляются при помощи функции freeobject.