helpf.pro
Регистрация

v8: Необходимо найти файлы с одинаковым именем, которые отличаются расширением

an07
15.01.2013 16:14Прочитано: 1356
Необходимо найти файлы с одинаковым именем, которые отличаются расширением.

Есть программный код:

Массив=НайтиФайлы("C:\Обмен\", "*.*");
Для каждого Файл из Массив Цикл
.....................
КонецЦикла;


Как обращаться в цикле к соседним файлам к текущему, если необходимо, например, сравнить ИмяБезРасширения у текущего и следующего элемента?
Изменено 15.01.13 16:35:22
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
15.01.2013 16:48Ответ № 1
(0) an07, предлагаю создать таблицу значений в которой 1-я колонка имя файла, 2-я цифра 1
далее всорачиваем ТЗ по имени файла, суммируя колонку 2 в результате - в тех стоках где во 2-ой колонке больше 1, тех и обрабатывай
an07
15.01.2013 17:20Ответ № 2
Спасибо! Удачи в работе! )
an07
17.01.2013 13:57Ответ № 3
Почему не получается свернуть таблицу значений?

Общий модуль "Регламентные процедуры":

Код 1C v 8.х
 Процедура ЗаписьВХранилище(Путь,НайденныеФайлы,КоличествоЭлементов)

ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Файл");
ТЗ.Колонки.Добавить("Кол");

Для Каждого Файл Из НайденныеФайлы Цикл
НаименованиеФ=Нрег(Путь+"\АрхивВходящих\"+Файл.ИмяБезРасширения);
НоваяСтрока=ТЗ.Добавить();
НоваяСтрока.Файл=НаименованиеФ;
НоваяСтрока.Кол=1;
КонецЦикла;

////////// сворачиваем ТЗ по имени файла, суммируя колонку 2 \\\\\\\\\\
ТЗ.Свернуть("Файл","Кол"); //????????????

Для Каждого ТекущаяСтрока Из ТЗ Цикл
НовыйЭлемент = Справочники.Хранилище.СоздатьЭлемент();
НовыйЭлемент.Наименование =ТекущаяСтрока.Файл;
TXT=Ложь;
PDF=Ложь;
JPG=Ложь;

Для Каждого Файл Из НайденныеФайлы Цикл
Наименование=Нрег(Путь+"\АрхивВходящих\"+Файл.ИмяБезРасширения);

Если ТекущаяСтрока.Файл=Наименование Тогда
Если Файл.Расширение=".jpg" or Файл.Расширение=".JPG" Тогда
JPG=Истина;
ИначеЕсли Файл.Расширение=".pdf" or Файл.Расширение=".PDF" Тогда
PDF=Истина;
ИначеЕсли Файл.Расширение=".txt" or Файл.Расширение=".TXT" Тогда
TXT=Истина;
КонецЕсли;

КопироватьФайл(Путь+"\Входящие\"+файл.имя,Путь+"\АрхивВходящих\"+файл.имя);
УдалитьФайлы(Путь+"\Входящие\"+файл.имя);

КонецЕсли;

КонецЦикла; //для массива файлов

НовыйЭлемент.РасширениеJPG=JPG;
НовыйЭлемент.РасширениеPDF=PDF;
НовыйЭлемент.РасширениеTXT=TXT;

НовыйЭлемент.ДатаЗагрузки =ТекущаяДата();
НовыйЭлемент.Записать();

КонецЦикла; //для ТЗ

КонецПроцедуры

Изменено 17.01.13 15:14:34
E_Migachev
17.01.2013 15:22Ответ № 4
да вроде все правильно, но попробуй:
Код 1C v 8.х
 НаименованиеФ=СокрЛП(Нрег(Путь+"\АрхивВходящих\"+Файл.ИмяБезРасширения));   
an07
17.01.2013 17:42Ответ № 5
СПАСИБО !!!!!! УДАЧИ В РАБОТЕ!!!!!
Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.