работа с файлами *.xls

Тема в разделе "1C и всё что с ней связано", создана пользователем Stim, 13 фев 2007.

  1. Stim

    Stim Гость

    Никак не могу найти решение своей задачи, если у кого-нибудь есть желание и возможность, то помогите составить алгоритм/программу для открытия из заданого каталога всех файлов с заданым расширением.
     
  2. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Алгоритм:
    1.Начало
    2.Получаем очередной файл
    3.Если файл получен, идем на п.4.
    иначе на п.5
    4.Если расширение = заданному, открываем файл
    иначе идем к п.2
    5.Конец
     
  3. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Код (Text):
       
    ПроцедураОткрытьФайлы(Путь, Маска=)
    ИмяФайла=ФС.НайтиПервыйФайл(Путь+Маска);
    Пока Сокрлп(ИмяФайла)<>"" Цикл
    ИмяФайла=ФС.НайтиСледующийФайл();
    Если (ИмяФайла<>"") И (ИмяФайла<>".") И (ИмяФайла<>"..") Тогда
    ФС.АтрибутыФайла(Путь+ИмяФайла,,АтрибФайла,,,,);
    АтрибФайла=Сред(АтрибФайла,4,1);
    Если (АтрибФайла<>"1") тогда
    Если (Прав(ИмяФайла,4)=".xls") тогда    
    ПутькФайлу=Путь+ИмяФайла;
    ИмяФайла=Лев(ИмяФайла,СтрДлина(ИмяФайла)-4);                
    // Выполняем действия по открытию файла
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Код не мой, думаю, можно написать оптимальнее, но работает. Надеюсь поможет.
    И ты перестанешь флудить во всех ветках форума...
     
  4. Stim

    Stim Гость

    Ура... щас попробую интегрировать это в мою программу. З.ы я тоже надеюсь поможет, а флуда небыло, был оффтоп, за что награжден уже предупреждением. Спасибо что помог.
     
  5. Stim

    Stim Гость

    ммм...так 1ый же файл не будет читаться ??
    ИмяФайла=ФС.НайтиПервыйФайл(Путь+Маска);
    Пока Сокрлп(ИмяФайла)<>"" Цикл
    ИмяФайла=ФС.НайтиСледующийФайл();
    т.к в цикле сразу стоит найтиследфайл.
    так будет правильно
    Код (Text):
        ПроцедураОткрытьФайлы(Путь, Маска=)
    ИмяФайла=ФС.НайтиПервыйФайл(Путь+Маска);
    Пока Сокрлп(ИмяФайла)<>"" Цикл
    Если (ИмяФайла<>"") И (ИмяФайла<>".") И (ИмяФайла<>"..") и
    (ИмяФайла=ФС.НайтиПервыйФайл(Путь+Маска)) тогда
    ФС.АтрибутыФайла(Путь+ИмяФайла,,АтрибФайла,,,,);
    АтрибФайла=Сред(АтрибФайла,4,1);
    Если (АтрибФайла<>"1") тогда
    Если (Прав(ИмяФайла,4)=".xls") тогда    
    ПутькФайлу=Путь+ИмяФайла;
    ИмяФайла=Лев(ИмяФайла,СтрДлина(ИмяФайла)-4);
    // Выполняем действия по открытию файла
    КонецЕсли;
    КонецЕсли;
    иначе
    ИмяФайла=ФС.НайтиСледующийФайл();
    если (ИмяФайла<>"") И (ИмяФайла<>".") И (ИмяФайла<>"..") тогда
    ФС.АтрибутыФайла(Путь+ИмяФайла,,АтрибФайла,,,,);
    АтрибФайла=Сред(АтрибФайла,4,1);
    Если (АтрибФайла<>"1") тогда
    Если (Прав(ИмяФайла,4)=".xls") тогда    
    ПутькФайлу=Путь+ИмяФайла;
    ИмяФайла=Лев(ИмяФайла,СтрДлина(ИмяФайла)-4);
    // Выполняем действия по открытию файла

    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    конецЦикла;
    ммм.да, некрасиво получилось, но надеюсь читабельно. :blink:
    зачем это нужно можешь пояснить???
     
  6. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    А это не важно, т.к. первый файл это ".". А нам он не нужен.
    Хочешь, чтоб было правильнее, опусти получение следующего файла в конец цикла. :blink:
    Чтобы не брать каталоги
    Согласен, что исходный код для тебя не оптимален, я всего-навсего нарезал тебе куски исходника, с несклоько большей функциональностью. Но ты что-то странное натворил ;)
    Извини, не вникал сильно в твой код, но, ИМХО, он нерабочий, т.к. цикл будет вечным.
    ты постоянно получаешь первый файл.
     
  7. Stim

    Stim Гость

    да чото намудрил... опустить в конец мудрое решение )))) сэнк ю еще раз
     
Загрузка...
Похожие Темы - работа файлами xls
  1. gx6060
    Ответов:
    2
    Просмотров:
    439
  2. seoman2
    Ответов:
    21
    Просмотров:
    768
  3. NickProstoNick
    Ответов:
    22
    Просмотров:
    1.526
  4. vladis222
    Ответов:
    3
    Просмотров:
    1.128
  5. Lyuska
    Ответов:
    1
    Просмотров:
    1.172

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