Имя: Пароль:
1C
1С v8
Как объединить два файла c расширением tiff
,
0 mpvpes
 
11.03.20
18:17
Процедура ОбъединениеФайловTIFF()


ИмяКаталога="D:\Temp\2020\";
ИмяФайлаКонец="Результат";
ИмяФайла=СокрЛП(ИмяКаталога+"\"+СокрЛП(ИмяФайлаКонец)+".tiff");    

ТЧФайлов.Очистить();

МаскаФайла=СокрЛП("Вх"+"*.tiff");

НайденныеФайлы = НайтиФайлы(ИмяКаталога,МаскаФайла,ложь);    
КодВозврата=0;
КомандаПрограммы="C:\Program Files (x86)\ImageMagick\convert.exe";
Для каждого Стр1 Из НайденныеФайлы Цикл
        Нстр = ТЧФайлов.Добавить();
        Нстр.ФайлTIFF = Стр1.Имя;    
    
        
ЗапускОбъединения=(КомандаПрограммы+" "+Стр1.Имя+" "+ИмяФайла);
ЗапуститьПриложение(ЗапускОбъединения,ИмяКаталога,Истина,КодВозврата);
    
КонецЦикла;
            
    
    Сообщить(" в Один файл собрано файлов: " + Строка(ТЧФайлов.Количество()));
        


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

Если N-количество файлов с расширением TIFF
их всех объеденить в один.
У меня формируется почему-то только 1 файл
1 mpvpes
 
11.03.20
18:19
Что не так?
2 Garykom
 
гуру
11.03.20
18:24
(1) Отладчиком научить пользоваться?
3 mikecool
 
11.03.20
18:25
строка, которая получается, в цмд правильно работает?
не вчитывался, но кажется в цикле идет работа только с одним файлом, и результат ожидаем
4 mpvpes
 
11.03.20
18:28
В cmd пробовал по одному работает
convert.exe Вх001.tiff результат.tiff
5 Garykom
 
гуру
11.03.20
18:30
для первого файла
ЗапускОбъединения=(КомандаПрограммы+" "+Стр1.Имя+" "+ИмяФайла);

Для последующих
ЗапускОбъединения=(КомандаПрограммы+" "+ИмяФайла+" "+Стр1.Имя+" "+ИмяФайла);
6 Garykom
 
гуру
11.03.20
18:30
(5) Не понял а что за скобки тут левые?
7 Garykom
 
гуру
11.03.20
18:33
Ну или "Вх"+"*.tiff" передавай шаблон вместо полного имени, нахрен ты файлы перебираешь когда это сам маджик может по шаблону?
8 mpvpes
 
11.03.20
18:34
Garykom Спасибо. Сейчас попробую.
9 shuhard
 
11.03.20
18:35
(1) почему convert, а не  montage  ?
(7) +1
# montage +frame +shadow +label -tile 5x1 -geometry 50x50+0+0 *.png joined.png      - объединить
10 mpvpes
 
11.03.20
18:49
Еще раз Спасибо Garykomу. Все получилось

//////////////
Первая=Истина;
Для каждого Стр1 Из НайденныеФайлы Цикл
        Нстр = ТЧФайлов.Добавить();
        Нстр.ФайлTIFF = Стр1.Имя;    
    
Если Первая=Истина Тогда        
ЗапускОбъединения=(КомандаПрограммы+" "+Стр1.Имя+" "+ИмяФайла);
ЗапуститьПриложение(ЗапускОбъединения,ИмяКаталога,Истина,КодВозврата);
Первая = Ложь;
   Продолжить;
КонецЕсли;
ЗапускОбъединения=(КомандаПрограммы+" "+ИмяФайла+" "+Стр.ИмяФайла+" "+ИмяФайла);
ЗапуститьПриложение(ЗапускОбъединения,ИмяКаталога,Истина,КодВозврата);
  
КонецЦикла;
//////////////////
Вот как получилось
Ошибка? Это не ошибка, это системная функция.