GlobalStringsHeapsAdd

From SunFlurry wiki
Revision as of 09:42, 8 November 2025 by 1>Admin
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  GlobalStringsHeapsAdd (Глобальные строки-массивы)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Неверные агрументы, системная ошибка сервера
Визуальность:Нет

Функция создает на сервере массив по его имени, с указанным разделителем значений и префиксов и указанными параметрами, задающимися в виде списка, и возвращает идентификатор созданного массива. Если массив уже существует, будет возвращен его идентификатор без каких-либо дополнительных изменений.

Синтаксис

GlobalStringsHeapsAdd(<Имя массива (STRING)>,<Строка-разделитель (STRING)>=Chr(0),<Разделитель префикса (STRING)>="",<Параметры массива (LIST)>):<Идентификатор массива (INT)>

Аргументы

  • <Имя массива (STRING)> - Параметр задает имя массива для создания. Имя может содержать международные символы.
  • <Строка-разделитель (STRING)> - (необязательный аргумент) Параметр задает строку-разделитель для строк массива. Строки массива не должны будут содержать эту комбинацию символов. Если параметр не задан, будет использован разделитель, состоящий из одного символа с кодом 0.
  • <Разделитель префикса (STRING)> - (необязательный аргумент) Параметр задает строку-разделитель префикса строки массива от ее значения. Префикс не участвует в поиске и может содержать произвольную текстовую информацию произвольной длины. Наличие префикса не является обязательным для определенной строки массива, даже если он задан при его создании. Если параметр не задан, массив не будет содержать префиксов, только значения.
  • <Параметры массива (LIST)> - (необязательный аргумент) Параметр задает дополнительные установки массива и является списком, наименования элементов которого задают наименование параметров, а значения элементов, являются значениями установок. На данный момент доступны следующие установки:
    • FileName -- задает путь к файлу сохранения массива на сервере. Если установка не указана, автоматического сохранения массива не будет выполняться. Если установка задана, будет произведена попытка чтения файла для начального заполнения массива.
    • BucketSize -- задает размер одного буфера строк массива. Чем больше значение, тем быстрее будет работать массив, однако, слишком большие значения фрагментируют память на сервере, замедляя его работу.
    • AutoShrink -- задает количество удалений, после которого автоматически будет выполнена операция сжатия массива (реконфигурация строк таким образом, чтобы они занимали меньший размер буфера). Если параметр не задан, автоматическое сжатие не будет производиться и его необходимо будет выполнять периодически с помощью функции GlobalStringsShrink.
    • AutoShinkThreshold -- (планируется к реализации) задает процент свободного места в данных буфера по отношению к размеру данных в буфере для инициации автоматической процедуры сжатия для буфера. По умолчанию -- 50%.
    • AutoSavePeriod -- задает минимальное время в миллисекундах, которое должно пойти с момента автоматического сохранения массива на диске до момента его следующего сохранения. Автоматическое сохранение производится только при наличии изменений в массиве. Если установка не задана, автоматическое сохранение выполняться не будет.

Возвращаемое значение

Возвращает числовое значение -- идентификатор массива на сервере.

Примеры

аДата:=BegOfDay(Date());
aList:=List.Create();
aList["BucketSize"]:=1024*1024;//1Мб буфер
aList["AutoShrink"]:=250;//Сжимать после 250 удалений
aList["AutoSavePeriod"]:=60000;//Сохранять не чаще одной минуты
aList["FileName"]:="Temp\МассивыСтрок\"+FormatDate(аДата,"YYYYmmdd")+".bin";
аМассив:=GlobalStringsHeapsAdd("MRK"+FormatDate(аДата,"YYYYmmdd"),Chr(0),Chr(1),aList);