Skip to content

Чтение TXT, CSV

Вариант с ЧтениеТекста

&НаКлиенте
Асинх Процедура ПрочитатьФайл(Команда)
Расширение = "txt";
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
ПараметрыДиалога.Заголовок = "Выберите файл";
ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога);
Если ОписаниеФайла = Неопределено Тогда
Возврат;
КонецЕсли;
АдресДанных = ОписаниеФайла.Адрес;
Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;
ПрочитатьФайлНаСервере(АдресДанных, Расширение);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)
ПутьКФайлу = ПолучитьИмяВременногоФайла(Расширение);
ДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанных);
ДанныеФайла.Записать(ПутьКФайлу);
Текст = Новый ЧтениеТекста;
Текст.Открыть(ПутьКФайлу, КодировкаТекста.UTF8);
ТекСтрока = Текст.ПрочитатьСтроку();
НомерСтроки = 1;
Пока ТекСтрока <> Неопределено Цикл
// обработка
ТекСтрока = Текст.ПрочитатьСтроку();
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
Текст.Закрыть();
УдалитьФайлы(ПутьКФайлу);
КонецПроцедуры

Вариант с ТекстовыйДокумент

&НаКлиенте
Асинх Процедура ПрочитатьФайл(Команда)
Текст = Новый ТекстовыйДокумент;
Оповещение = Новый ОписаниеОповещения("ПрочитатьФайлЗавершение", ЭтотОбъект, Текст);
Текст.НачатьЧтение(Оповещение, Объект.ПутьКФайлу, КодировкаТекста.UTF8);
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьФайлЗавершение(Текст) Экспорт
КоличествоСтрок = Текст.КоличествоСтрок();
Для НомерСтроки = 1 По КоличествоСтрок Цикл
ТекСтрока = Текст.ПолучитьСтроку(НомерСтроки);
// Обработка
КонецЦикла;
КонецПроцедуры