НАЧАЛО >> TRE-деревья >> Назначение Tre📄 Скачать в DOCX
Tre создает объект дерева, настраивает имя файла и базу данных, загружает .TRE из APATH_DB или APATH_SYS, разбирает отступы табуляцией и преобразует строки из Windows-1251 в UTF-8.
После загрузки содержимое дерева сохраняется в объекте как массив узлов с ключом, значением и дочерними элементами. Для ускорения повторного чтения используется файловый кэш в DataPath/om_shared.
Tre::GetNew().Tre/Load передается имя базы ИРБИС и имя .TRE-файла.Tre/SetName нормализует имя: убирает лишние пробелы и слеши, переводит имя файла к верхнему регистру, добавляет расширение .TRE, если оно не указано.Корневой элемент имеет служебное значение root и массив дочерних узлов sub. Каждый узел содержит:
key - код или значение, которое обычно записывается в поле;value - подпись узла, если она есть в файле;sub - дочерние узлы, если строка имеет вложенный уровень.Редакторы могут показывать пользователю key, value или объединенный текст, а в запись возвращать только код выбранного узла.
Кэш хранится в DataPath/om_shared. Для файлов из области базы используется путь с префиксом datai, для APATH_DATAI префикс не добавляется. Имя базы и имя файла в кэше приводятся к нижнему регистру.
На Windows имя файла кэша дополнительно конвертируется из UTF-8 в Windows-1251. Это позволяет использовать один и тот же механизм на Windows и Linux, но важно учитывать кодировку имен файлов и содержимого .TRE.
Модуль служебный: он предоставляет структуру данных для других модулей и сам по себе не имеет пользовательского интерфейса. Пользовательские сценарии выбора дерева описываются в документации редакторов, например в разделе средств ввода he3.