ЧтениеДанных.Разделить

Методы · Split

Разделяет остаток данных по заданным разделителям.

Синтаксис

Разделить()
Разделить(<Разделитель>)
Разделить(<КодировкаТекста>)
Разделить(<Разделитель>)
Разделить(<КодировкаТекста>)
Разделить(<Разделители>)
Полное описание, параметры и ограничения

ЧтениеДанных.Разделить (DataReader.Split)

ЧтениеДанных (DataReader)

Разделить (Split)

Доступен, начиная с версии 8.3.9.

Вариант синтаксиса: Разделение по двоичному разделителю

Синтаксис:
Разделить()
Описание варианта метода:
Разделить данные по двоичному разделителю.
Вариант синтаксиса: По двоичному разделителю

Синтаксис:
Разделить(<Разделитель>)
Параметры:

<Разделитель> (обязательный)
Тип: БуферДвоичныхДанных.
Двоичный разделитель данных.
Описание варианта метода:
Разделяет остаток данных по двоичному разделителю.
Вариант синтаксиса: Разделение по строковому разделителю

Синтаксис:
Разделить(<КодировкаТекста>)
Параметры:

<КодировкаТекста> (необязательный)
Тип: КодировкаТекста, Строка.
Кодировка текста. Если не задана, то используется кодировка, заданная для текущего экземпляра объекта ЧтениеДанных.
Значение по умолчанию: Неопределено.
Описание варианта метода:
Разделить данные по строковому разделителю.
Вариант синтаксиса: По строковому разделителю

Синтаксис:
Разделить(<Разделитель>)
Параметры:

<Разделитель> (обязательный)
Тип: Строка.
Разделитель данных в виде строки.
Описание варианта метода:
Разделяет остаток данных по строковому разделителю.
Вариант синтаксиса: Разделение по набору смешанных разделетелей

Синтаксис:
Разделить(<КодировкаТекста>)
Параметры:

<КодировкаТекста> (необязательный)
Тип: КодировкаТекста, Строка.
Кодировка текста. Если не установлена, используется кодировка, заданная для текущего экземпляра ЧтениеДанных.
Значение по умолчанию: Неопределено.
Описание варианта метода:
Разделить данные по набору смешанных разделителей.
Вариант синтаксиса: По набору смешанных разделителей

Синтаксис:
Разделить(<Разделители>)
Параметры:

<Разделители> (обязательный)
Тип: Массив.
Массив разделителей может содержать элементы типа БуферДвоичныхДанных или Строка.
Описание варианта метода:
Разделяет остаток данных по набору смешанных разделителей.
Возвращаемое значение:
Тип: Массив.
Массив значений типа РезультатЧтенияДанных.
Описание:

Разделяет остаток данных по заданным разделителям.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.

См. также:
ЧтениеДанных, метод НачатьРазделение
ЧтениеДанных, метод НачатьРазделениеНаЧастиПо
ЧтениеДанных, метод РазделитьНаЧастиПо
ЧтениеДанных, метод РазделитьАсинх

Использование в версии:

Доступен, начиная с версии 8.3.9.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Разделить три простые текстовые записи по |

Упражнение разбирает Книга|Ручка|Коробка. Результат разделения — массив двоичных частей, а не массив строк.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу. Фрагмент без директив вставьте в тело серверной процедуры ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

  2. Все исходные байты создаются самим примером в памяти. Файлы, сеть, справочники и документы не нужны.

  3. Запускайте задачи отдельно. После закрытия ЧтениеДанных/ЗаписьДанных не используйте этот экземпляр повторно.

Данные = ПолучитьДвоичныеДанныеИзСтроки("Книга|Ручка|Коробка", КодировкаТекста.UTF8, Ложь);
Чтение = Новый ЧтениеДанных(Данные, КодировкаТекста.UTF8);
Попытка
    Части = Чтение.Разделить("|");
    Сообщить(Части.Количество() = 3);
    Ожидаемые = Новый Массив;
    Ожидаемые.Добавить("Книга");
    Ожидаемые.Добавить("Ручка");
    Ожидаемые.Добавить("Коробка");
    Для Индекс = 0 По Части.Количество() - 1 Цикл
        Текст = ПолучитьСтрокуИзДвоичныхДанных(Части[Индекс].ПолучитьДвоичныеДанные(), КодировкаТекста.UTF8);
        Сообщить(Текст = Ожидаемые[Индекс]);
    КонецЦикла;
Исключение
    Чтение.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();

Разбор по шагам

  1. Строка имеет две границы | без пустых записей в начале/конце. Поэтому ожидаем три части.

  2. Разделить использует кодировку экземпляра ЧтениеДанных, здесь UTF-8.

  3. Для каждой части отдельно получаем ДвоичныеДанные и декодируем в той же кодировке.

  4. Сравниваем три русских названия с заранее известным массивом, не только количество частей.

Как проверить результат

  1. Три декодированные части — Книга, Ручка, Коробка в исходном порядке.

  2. Количество и все три проверки содержимого дают Истина.

Ожидаемый результат

Простой список текстовых записей разобран с сохранением русских букв.

На что обратить внимание

  1. У такого формата здесь нет экранирования. Название, содержащее |, даст другую структуру.

  2. Это не полноценный CSV-парсер: кавычки и переводы строк внутри поля не обработаны.

  3. Не предполагаем правила пустых полей без отдельного теста: в этом упражнении их нет.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.