8.х Чтение текстового файла

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем retker, 12 авг 2014.

  1. TopicStarter Overlay
    retker
    Offline

    retker Опытный в 1С

    Регистрация:
    12 дек 2013
    Сообщения:
    124
    Симпатии:
    0
    Баллы:
    26
    Доброго дня. Возникла проблема, подскажите пожалуйста, как решить. Необходимо из каталога прочитать файлыи нужные строки из каждого файла записать в регистр сведений. На данный момент задача читать первые 4 строчки из каждого файла.
    Но не могу понять как прочитать не из отдельного файла, а из каталога все файлы. Вот как думал.
    Код:
    МассивФаилов = НайтиФайлы("C:\spy\unsorted\IakovlevEE\", "*.txt");
    Текст = Новый ТекстовыйДокумент;
     Для Каждого Фаил из МассивФаилов Цикл
     Текст.Прочитать(Фаил);
     Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл
     Стр = Текст.ПолучитьСтроку(НомерСтроки);
     Сообщить(Стр);
     КонецЦикла;
     КонецЦикла;
    
    Если читать не из массива а один фаил, то все нормально, если из массива то пишет ошибку:
    {Обработка.ПереносИзФаила.Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (Прочитать)
    Текст.Прочитать(Фаил);
    по причине:
    Файл не обнаружен 'Файл'

    Как поправить подскажите?
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    для начала полученный массив надо проверить, если в нём что-то вообще?
    это обычное правило вообще-то
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    если ничего нет в массиве, то и в цикл не зайдет
  4. TopicStarter Overlay
    retker
    Offline

    retker Опытный в 1С

    Регистрация:
    12 дек 2013
    Сообщения:
    124
    Симпатии:
    0
    Баллы:
    26
    Да вы правы. Но, к примеру, такой код выводит список файлов:

    Код:
    МассивФаилов = НайтиФайлы("C:\spy\unsorted\","*.txt");
    Для Каждого Фаил из МассивФаилов Цикл
       Сообщить(Фаил.Имя);
    КонецЦикла;
    
    т.е. мне теперь надо каждый файл открыть и обработать...
  5. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    вот так должно было быть
    Код:
        МассивФаилов = НайтиФайлы("C:\spy\unsorted\IakovlevEE\", "*.txt");
        Текст = Новый ТекстовыйДокумент;
        Для Каждого Фаил из МассивФаилов Цикл
            Текст.Прочитать(Фаил.ПолноеИмя);
            Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл
                Стр = Текст.ПолучитьСтроку(НомерСтроки);
                Сообщить(Стр);
                Если НомерСтроки=4 Тогда // тут на 4 строке файла прерывает принудительно цикл
                    Прервать;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    
Похожие темы
  1. ДмитрийF
    Ответов:
    4
    Просмотров:
    2.554
Загрузка...

Поделиться этой страницей