Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

Чтение текстового файла в 1С 8.3 — разные способы с примерами

Как прочитать текстовый файл средствами платформы 1С 8.3 и как работать с ними в целом? Если не брать во внимание чтение специализированных форматов текстовых файлов то, по сути, во встроенном языке для этих целей реализованы два объекта: ЧтениеТекста и ТекстовыйДокумент. Рассмотрим на примерах, какие возможности предоставляет каждый из них.

ЧтениеТекста()

Объект ЧтениеТекста() предназначен для последовательного чтения текстовых файлов (большой длины)

Пример №1 — Прочитать файл по строкам

//Инициализируем объект ЧтениеТекста

Текст = Новый ЧтениеТекста;

Текст.Открыть("C:\Док.txt");              

Строка = Текст.ПрочитатьСтроку();

Пока Строка <> Неопределено Цикл //строки читаются до символа перевода строки                  

            //манипуляции со строкой

            Позиция = Найти(Строка, "=");

            Если Позиция > 0 Тогда

                        Значение = СокрЛП(Сред(Строка, Позиция + 1));

                        Сообщить(Значение);

            КонецЕсли;

            Строка = Текст.ПрочитатьСтроку();             

КонецЦикла;

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

Пример №2 — Чтение через «Файл»

Если требуется предварительно проанализировать параметры файла или параметры каталога, в котором он расположен необходимо использовать совместно с объектом Файл(). Пример кода, который перед чтением проверяет текстовый файл на существование, может выглядеть так:

Получите 267 видеоуроков по 1С бесплатно:

//Инициализируем объект Файл

ИмяФайла = "C:\Док.txt";

ВыбФайл = Новый Файл(ИмяФайла);

Если ВыбФайл.Существует() Тогда //проверка на существование файла

Текст = Новый ЧтениеТекста(ИмяФайла);

Строка = Текст.ПрочитатьСтроку();

Пока Строка <> Неопределено Цикл //строки читаются до символа       перевода строки

// манипуляции со строкой

Сообщить(Строка);

Строка = Текст.ПрочитатьСтроку();

КонецЦикла;

Иначе

Сообщить("Файл не найден!");

КонецЕсли; 

Пример №3 — Выбираем файл на диске и читаем его

Зачастую требуется возможность интерактивного выбора файла. Тогда необходимо использовать объект ДиалогВыбораФайла().Доступны три режима роботы объекта: ВыборКаталога, Открытие, Сохранение. Пример кода:

//Инициализируем объект ДиалогВыбораФайла

ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

ДиалогВыбора.Заголовок = "Выберите файл";


Если ДиалогВыбора.Выбрать() Тогда

ИмяФайла = ДиалогВыбора.ПолноеИмяФайла; //Выбор файла из диалогового окна

КонецЕсли;


Текст = Новый ЧтениеТекста(ИмяФайла);

Строка = Текст.ПрочитатьСтроку();

Пока Строка <> Неопределено Цикл //строки читаются до символа перевода строки

// манипуляции со строкой

Сообщить(Строка);

Строка = Текст.ПрочитатьСтроку();

КонецЦикла;

Пример №4 — Чтение текста «порциями»

Если есть необходимость контролировать длину читаемых строк текстового файла, стоит заменить метод ПрочитатьСтроку() на Прочитать(). Однако отметим, что при указании параметра <РазмерСтроки>, заданное число может включать в себя символы переноса строки. То есть символы переноса строки идут в счёт параметра. Пример кода:

Текст = Новый ЧтениеТекста("C:\Док.txt");

Строка = Текст.Прочитать(10);

Пока Строка <> Неопределено Цикл //чтение файла по 10 символов

// манипуляции со строкой

Сообщить(Строка);

Строка = Текст.Прочитать(10);

КонецЦикла;

ТекстовыйДокумент()

Объект ТекстовыйДокумент() предназначен для работы с текстами. Позволяет получать и сохранять текст в файле, работать со строками, открывать текст в текстовом редакторе 1С:Предприятия. Обладает более богатым набором методов и свойств в отличие от объекта ЧтениеТекста().  При необходимости к нему так же применимы объекты Файл() и ДиалогВыбораФайла().

Пример кода:

Текст = Новый ТекстовыйДокумент;

Текст.Прочитать("C:\Док.txt");

КоличествоСтрок = Текст.КоличествоСтрок();//получаем количество строк

Для Строка = 1 По КоличествоСтрок Цикл

//Получаем строку по номеру

СтрокаДляРазбора = Текст.ПолучитьСтроку(Строка);

//манипуляции со строкой

Сообщить(СтрокаДляРазбора);

КонецЦикла;

Таким образом, с помощью данных объектов разработчику предоставляются широкие возможности для анализа и обработки текстовых документов.

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Добавить комментарий:

Ваш адрес email не будет опубликован.