Чтение текстового файла в 1С 8.3 — разные способы с примерами
Как прочитать текстовый файл средствами платформы 1С 8.3 и как работать с ними в целом? Если не брать во внимание чтение специализированных форматов текстовых файлов то, по сути, во встроенном языке для этих целей реализованы два объекта: ЧтениеТекста и ТекстовыйДокумент. Рассмотрим на примерах, какие возможности предоставляет каждый из них.
Содержание
ЧтениеТекста()
Объект ЧтениеТекста() предназначен для последовательного чтения текстовых файлов (большой длины)
Пример №1 — Прочитать файл по строкам
//Инициализируем объект ЧтениеТекста Текст = Новый ЧтениеТекста; Текст.Открыть("C:\Док.txt"); Строка = Текст.ПрочитатьСтроку(); Пока Строка <> Неопределено Цикл //строки читаются до символа перевода строки //манипуляции со строкой Позиция = Найти(Строка, "="); Если Позиция > 0 Тогда Значение = СокрЛП(Сред(Строка, Позиция + 1)); Сообщить(Значение); КонецЕсли; Строка = Текст.ПрочитатьСтроку(); КонецЦикла;
В данном примере осуществляется последовательное чтение строк и последовательный вывод всех символов после разделителя до символа перевода строки в окно сообщений.
Пример №2 — Чтение через «Файл»
Если требуется предварительно проанализировать параметры файла или параметры каталога, в котором он расположен необходимо использовать совместно с объектом Файл(). Пример кода, который перед чтением проверяет текстовый файл на существование, может выглядеть так:
//Инициализируем объект Файл ИмяФайла = "C:\Док.txt"; ВыбФайл = Новый Файл(ИмяФайла); Если ВыбФайл.Существует() Тогда //проверка на существование файла Текст = Новый ЧтениеТекста(ИмяФайла); Строка = Текст.ПрочитатьСтроку(); Пока Строка <> Неопределено Цикл //строки читаются до символа перевода строки // манипуляции со строкой Сообщить(Строка); Строка = Текст.ПрочитатьСтроку(); КонецЦикла; Иначе Сообщить("Файл не найден!"); КонецЕсли;
Пример №3 — Выбираем файл на диске и читаем его
Зачастую требуется возможность интерактивного выбора файла. Тогда необходимо использовать объект ДиалогВыбораФайла().Доступны три режима роботы объекта: ВыборКаталога, Открытие, Сохранение. Пример кода:
//Инициализируем объект ДиалогВыбораФайла ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбора.Заголовок = "Выберите файл"; Если ДиалогВыбора.Выбрать() Тогда ИмяФайла = ДиалогВыбора.ПолноеИмяФайла; //Выбор файла из диалогового окна КонецЕсли; Текст = Новый ЧтениеТекста(ИмяФайла); Строка = Текст.ПрочитатьСтроку(); Пока Строка <> Неопределено Цикл //строки читаются до символа перевода строки // манипуляции со строкой Сообщить(Строка); Строка = Текст.ПрочитатьСтроку(); КонецЦикла;
Пример №4 — Чтение текста «порциями»
Если есть необходимость контролировать длину читаемых строк текстового файла, стоит заменить метод ПрочитатьСтроку() на Прочитать(). Однако отметим, что при указании параметра <РазмерСтроки>, заданное число может включать в себя символы переноса строки. То есть символы переноса строки идут в счёт параметра. Пример кода:
Текст = Новый ЧтениеТекста("C:\Док.txt"); Строка = Текст.Прочитать(10); Пока Строка <> Неопределено Цикл //чтение файла по 10 символов // манипуляции со строкой Сообщить(Строка); Строка = Текст.Прочитать(10); КонецЦикла;
ТекстовыйДокумент()
Объект ТекстовыйДокумент() предназначен для работы с текстами. Позволяет получать и сохранять текст в файле, работать со строками, открывать текст в текстовом редакторе 1С:Предприятия. Обладает более богатым набором методов и свойств в отличие от объекта ЧтениеТекста(). При необходимости к нему так же применимы объекты Файл() и ДиалогВыбораФайла().
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Пример кода:
Текст = Новый ТекстовыйДокумент; Текст.Прочитать("C:\Док.txt"); КоличествоСтрок = Текст.КоличествоСтрок();//получаем количество строк Для Строка = 1 По КоличествоСтрок Цикл //Получаем строку по номеру СтрокаДляРазбора = Текст.ПолучитьСтроку(Строка); //манипуляции со строкой Сообщить(СтрокаДляРазбора); КонецЦикла;
Таким образом, с помощью данных объектов разработчику предоставляются широкие возможности для анализа и обработки текстовых документов.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!