Назначение Tre


НАЧАЛО >> TRE-деревья >> Назначение Tre📄 Скачать в DOCX


Tre создает объект дерева, настраивает имя файла и базу данных, загружает .TRE из APATH_DB или APATH_SYS, разбирает отступы табуляцией и преобразует строки из Windows-1251 в UTF-8.

После загрузки содержимое дерева сохраняется в объекте как массив узлов с ключом, значением и дочерними элементами. Для ускорения повторного чтения используется файловый кэш в DataPath/om_shared.

1. Порядок загрузки

  1. Вызывающий код создает объект через Tre::GetNew().
  2. В Tre/Load передается имя базы ИРБИС и имя .TRE-файла.
  3. Tre/SetName нормализует имя: убирает лишние пробелы и слеши, переводит имя файла к верхнему регистру, добавляет расширение .TRE, если оно не указано.
  4. Модуль сначала пытается прочитать разобранное дерево из кэша.
  5. Если кэша нет, файл читается через провайдер базы, разбирается по отступам табуляцией и сохраняется в кэш.

2. Содержимое результата

Корневой элемент имеет служебное значение root и массив дочерних узлов sub. Каждый узел содержит:

Редакторы могут показывать пользователю key, value или объединенный текст, а в запись возвращать только код выбранного узла.

3. Кэш и платформы

Кэш хранится в DataPath/om_shared. Для файлов из области базы используется путь с префиксом datai, для APATH_DATAI префикс не добавляется. Имя базы и имя файла в кэше приводятся к нижнему регистру.

На Windows имя файла кэша дополнительно конвертируется из UTF-8 в Windows-1251. Это позволяет использовать один и тот же механизм на Windows и Linux, но важно учитывать кодировку имен файлов и содержимого .TRE.

4. Ограничения

Модуль служебный: он предоставляет структуру данных для других модулей и сам по себе не имеет пользовательского интерфейса. Пользовательские сценарии выбора дерева описываются в документации редакторов, например в разделе средств ввода he3.