createstringlisthash

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

Синтаксис:

h_id = createstringlisthash(s_id, mem);

Аргументы:

Имя Тип данных Описание
s_id integer Идентификатор списка строк
mem integer Размер выделяемой памяти

Описание:

сreatestringlisthash(s_id, mem) – функция создания хэш-таблицы для списка строк с идентификатором s_id и получения ее идентификатора. Хэш-таблицы предназначены для обеспечения ускорения поиска идентификатора в списке строк. Хэш-таблица позволяет хранить пары (индекс в списке, строка) и позволяет осуществлять операции добавления новой пары, операцию быстрого поиска и операцию удаления пары по строковому идентификатору (строке). Хэш-таблицу можно уничтожить при помощи freeobject.

Результат:

Имя Тип данных Описание
h_id 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);    
//получим индексы строки                      
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.

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

Нет.