Чтение текстового формата файла

06.07.23

Разработка - Инструментарий разработчика

Чтение текстового формата файла написано полностью на чистом 1С. Реализация исключительно на работе с буферами двоичных данных. Работает на платформе 8.3.23.

Актуальный релиз

Наименование Файл Версия Размер
Чтение текстового формата файла:
.epf 11,36Kb
2
.epf 1.0.1.0 11,36Kb 2 Скачать

Предисловие:

При описании будут использоваться следующие скобки:

  • круглые - означают, что элемент, описанный в круглых скобках может встречаться 0 или 1 раз, т.е. это не обязательный элемент.
  • квадратные - означают, что элемент, описанный в квадратных скобках может встречаться любое количество раз, включая 0, т.е. квадратные скобки описывают возможное повторение элементов.
  • угловые - в угловых скобках будет заключено название элемента (и возможно, тип), структура которого будет описана отдельно, если она не очевидна.
  • фигурные - означают начало и закрытие списка.

Список с вложенными списками:

Многие файлы 1С, как внутренние (например, некоторые файлы, содержащиеся в файлах *.epf, *.erf, *.cf и т.д. и извлекаемые из них инструментом v8unpack), так и внешние (например, файлы консоли запросов *.sel, файлы консоли отчетов *.rcf, *.dcf, файлы параметров *.pfl, файлы замеров производительности *.pff, файлы серверов *.lst, файлы табличного документа *.mxl, файлы журнала регистрации (*.elf, *.log, *.lgf, *.lgp)) и т.д., имеют структуру «списка с вложенными списками». Эти файлы представляют собой текстовые файлы определенной структуры.

Определим несколько типов, которые могут содержаться в таких файлах.

  1. Число. Представляет из себя последовательность цифр, с необязательной десятичной точкой: <Цифра>[<Цифра>] (.<Цифра>[<Цифра>]), где <Цифра>  - это символ 0…9.
  2. Строка. Представляет из себя произвольную последовательность символов, ограниченную спереди и сзади двойными кавычками ("). Для обозначения символа двойной кавычки внутри строки используется последовательность двух двойных кавычек ("").
  3. GUID (уникальный идентификатор). Представляет из себя последовательность символов следующего формата: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где x – шестнадцатеричная цифра (0…9, a…f, A…F).
  4. Binary (двоичные данные). Представляет из себя строку, начинающуюся с символов "#base64:" или "#data:" или без символов,  за которыми следует набор символов, представляющий из себя зашифрованный алгоритмом base64 двоичные данные.
  5. Ссылка. Представляет из себя последовательность символов следующего формата: <Цифра>[<Цифра>]:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, где <Цифра>  - это символ 0…9 и x – шестнадцатеричная цифра (0…9, a…f, A…F).
  6. Число с показателем степени. Представляет из себя последовательность цифр, с необязательной десятичной точкой с показателем степени: <Цифра>[<Цифра>] (.<Цифра>[<Цифра>])e<Цифра>[<Цифра>], где <Цифра>  - это символ 0…9 и е - показатель степени.
  7. Список. Список представляет собой последовательность значений, разделенных запятыми и ограниченный спереди и сзади фигурными скобками: {<Значение>[,<Значение>]}, где <Значение> - это значение любого из типов "Число", "Строка", "GUID", "Binary", "Список" и т.д.

В случае, если <Значение> является значением типа "Список", то оно отделяется спереди и сзади символами перевода строки (0x0D, 0x0A).

Собственно весь файл является одним значением типа "Список", только он не выделен символами перевода строки, как вложенные списки.

Обработка читает файл в массив или в дерево:

  • чтение выполняется с использованием современного метода "ЧтениеДанных".
  • анализирует текст и преобразует в массив вложенных массивов и выводит в дерево на форме или преобразует в дерево на форме.
  • обрабатываются фигурные скобки открытия/закрытия, запятые и значения с кавычками и без кавычек, а так же двойные кавычки внутри текста, пустые значения вида {,,} и списки вида {},{}.
  • определяет тип значения "Строка", "Число", "GUID" и т.д. с использованием регулярок на платформе 8.3.23.

Может быть интересна с точки зрения изучения метаданных файлов.

 
 Новое в версии

06.07.2023 - Версия 1.0.1.0:

  • Заменены реквизиты обработки на формальные параметры.

06.07.2023 - Версия 1.0.0.0:

  • Реализовано чтение файла с диска методом "ЧтениеДанных".
  • Добавлены варианты парсинга: "массив", "дерево".
  • Добавлена проверка строки на соответствие заданному регулярному выражению методом СтрПодобнаПоРегулярномуВыражению.
  • Добавлена возможность сворачивать / разворачивать узлы определенного уровня у дерева. Всего уровней 5.
  • Добавлена возможность определять текущий индекс при активизации строки дерева.

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    101962    565    385    

610

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11557    26    2    

142

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 руб.

14.01.2013    173082    1042    0    

817

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы Платные (руб)

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

18000 руб.

06.10.2023    3590    3    0    

17

Управление данными и формами (УДиФ)

Инструменты администратора БД Инструментарий разработчика Администрирование Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    1398    3    1    

20

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    97606    237    97    

287

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    22396    14    15    

27

Автоматизация труда программиста. Библиотека прикладных функций

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Платные (руб)

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13860    5    9    

12
Оставьте свое сообщение