Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Скрипт для записи в HTML-файлы информации о файлах JPG
Goto page 1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Yurbanizator



Joined: 13 Dec 2006
Posts: 26

Post (Separately) Posted: Sun Dec 09, 2012 19:07    Post subject: Скрипт для записи в HTML-файлы информации о файлах JPG Reply with quote

Друзья, прошу помощи!
Сам в скриптах не силен, а очень нужен для работы скриптик для обработки файлов по следующему алгоритму.

1. Скрипт получает имя директории как параметр.
2. Проверяет директорию на на наличие в нем файлов jpeg
3. Если такие файлы есть переименовывает их по порядку 1.jpg, 2.jpg, 3.jpg и т.д. до последнего файла
4. Создает соответствующие файлы html в этой же директории 1.html, 2.html, 3.html и т.д. для каждого файла jpg
5. В html файлы записывает имя соответствующего файла jpg и его высоту и ширину.
6. Сообщает об удачном окончании операции и количестве обработанный файлов jpg

На скриншоте №1 слева - исходная директория, справа - после выполнения скрипта.
На скриншоте №2 - файл 1.html созданный скриптом.

Заранее спасибо!

 !  Avada:
Замечание за нарушение правил форума. Неформатные картинки заменены ссылками.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 10, 2012 21:01    Post subject: Reply with quote

Code:
'================================================================
' Переименовать jpeg-файлы в активном каталоге на номер счётчика
' Создать рядом одноимённые html с записью размеров картинок

' Условие - путь запуска пустой
'================================================================
Dir = CreateObject("WScript.Shell").CurrentDirectory
Set Fd = CreateObject("Shell.Application").NameSpace(Dir) : Set Items = Fd.Items
Items.Filter 64, "*.jpg"
With CreateObject("Scripting.FileSystemObject")
  If Items.Count > 0 Then
    For Each F In .GetFolder(Dir).Files
      Ext = LCase(.GetExtensionName(F))
      If (Ext = "jpg" Or Ext = "jpeg") And Not IsNumeric(.GetBaseName(F)) Then
        i = i + 1 : Do While .FileExists(i & "." & Ext) : i = i + 1 : Loop
        .GetFile(F).Name = i & "." & Ext
        Size = CStr(Fd.GetDetailsOf(Fd.ParseName(F.Name), 31))
        x = InStr(Size, "x") : H = Left(Size, x - 2)
        .OpenTextFile(i & ".html", 2, True, -1).Write _
        "<h1> " & i & ".jpg </h1>" & vbNewLine & "height = <b> " & H &_
        " </b> " & vbNewLine & "width = <b> " & Mid(Size, x + 2) & " </b>"
      End If
    Next
  End If
End With : CreateObject("WScript.Shell").SendKeys "^R"

P.S.: И название темы надо бы на нормальное поменять - обработкой изображений тут не пахнет..
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Sat Dec 15, 2012 20:48; edited 2 times in total
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Mon Dec 10, 2012 21:37    Post subject: Reply with quote

Flasher
Замечание верное. Название темы поменял (там хотя бы частично нужный функционал сейчас отражён).
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Yurbanizator



Joined: 13 Dec 2006
Posts: 26

Post (Separately) Posted: Mon Dec 10, 2012 22:28    Post subject: Reply with quote

Кладу скрипт в папку с изображениями. Запускаю. Вылетает ошибка.
При этом первое изображение обрабатывает.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 10, 2012 22:50    Post subject: Reply with quote

Честно, сам в недоумении. Shocked Почему-то метод Write на 7-ке не хочет писать значения, возвращённые из стандартных функций.
В XP такого бреда нет.. Ещё подумаю.

Скрипт вешается элементарно на кнопку, в каждую папку с jpeg его класть не требуется. Тут обсуждаются скрипты для ТС.

Add: цифровые символы юникодные, оказывается.. Пишем html в Юникод, в общем. Поменял в скрипте.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Yurbanizator



Joined: 13 Dec 2006
Posts: 26

Post (Separately) Posted: Tue Dec 11, 2012 09:49    Post subject: Reply with quote

Заработал из папки с изображениями, супер!

Flasher wrote:
Скрипт вешается элементарно на кнопку, в каждую папку с jpeg его класть не требуется. Тут обсуждаются скрипты для ТС.


Да, это я прекрасно понимаю, мне он и нужен для ТС. Wink
Повешал его на кнопку, параметр директории передаю "%P", не хочет работать. Может, что не так делаю?

Скрин http://joxi.ru/Z8xU9Ayq

Add: еще не ясен коммент в коде ' Условие - путь запуска пустой

Add2: Dir = CreateObject("WScript.Shell").CurrentDirectory - задает переменной Dir значение директории в которой лежит скрипт, поэтому он ищет изображения в своей директории...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 11, 2012 11:58    Post subject: Reply with quote

Yurbanizator wrote:
Может, что не так делаю?
В условиях скрипта где-то написано про параметры? Нет.
Yurbanizator wrote:
еще не ясен коммент в коде ' Условие - путь запуска пустой
В кнопке/юзеркоманде такое поле есть. Впервые сталкиваемся?
Yurbanizator wrote:
задает переменной Dir значение директории в которой лежит скрипт
Нет. Возвращает указанный путь рабочей папки, если его нет, то считывает путь активного каталога.

На будущее: надо не экспериментировать, а следовать описанию шапки..
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Yurbanizator



Joined: 13 Dec 2006
Posts: 26

Post (Separately) Posted: Tue Dec 11, 2012 21:24    Post subject: Reply with quote

Flasher
Гениально! все работает )
Спасибо. Сори за тупняк, впервые такое делаю.
Back to top
View user's profile Send private message
berya



Joined: 15 Nov 2011
Posts: 46
Location: kiev

Post (Separately) Posted: Tue Dec 11, 2012 21:52    Post subject: Reply with quote

Добрый вечер.
А как сделать чтобы в название включалось имя директории?


имеем aaa\xxx.jpg - получим aaa_01.jpg

Спасибо
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 11, 2012 23:52    Post subject: Reply with quote

Surprised Ни за что бы не подумал, что такой скрипт может ещё кому-то пригодиться..

А имена везде менять (jpg/html/в html) ?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
berya



Joined: 15 Nov 2011
Posts: 46
Location: kiev

Post (Separately) Posted: Wed Dec 12, 2012 00:14    Post subject: Reply with quote

На самом деле мне это скрипт был бы очень нужен в более расширенном виде - запись списка файлов в один HTML файл.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Dec 12, 2012 00:21    Post subject: Reply with quote

berya
НЕ вижу связи со здешним скриптом. См. сюда.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
berya



Joined: 15 Nov 2011
Posts: 46
Location: kiev

Post (Separately) Posted: Wed Dec 12, 2012 00:24    Post subject: Reply with quote

Связь: переименованием с последующей записью
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Dec 12, 2012 00:34    Post subject: Reply with quote

Т.е. переименовать список и записать его в один html? Коли так, то в любом случае оффтоп.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
berya



Joined: 15 Nov 2011
Posts: 46
Location: kiev

Post (Separately) Posted: Wed Dec 12, 2012 00:39    Post subject: Reply with quote

переименовывать не список а JPG файлы. запись в один файл не критична, то есть оставляем исходный. Критично - имя файла по имени директории и нумерация должна быть минимум из 2 заков (01, 02, 03 ...)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2, 3, 4, 5  Next
Page 1 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group