Автор Тема: Au3Stripper - очистка кода от неиспользуемых функций и переменных  (Прочитано 9144 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560
  • Репутация: 150
    • Награды
AutoIt: 3.3.10.0
Версия: 1.4

Au3Stripper является аналогом одноименной утилиты из SciTE4AutoIt3 и имеет следующие отличительные особенности:
  • Добавлена возможность явно указать путь к AutoIt, который будет использоваться при обработке исходного кода.
  • Значительно увеличена скорость обработки. В режиме склейки исходного кода с подключаемыми файлами и очистки от неиспользуемых функций и переменных разница для небольших файлов составляет примерно пять раз, но это не главное - оригинальный Au3Stripper производит обработку за вполне приемлемое время. Для больших файлов разница может составлять более тридцати раз - и это уже очень ощутимо. Правда, режим PreExpand работает гораздо медленнее, но, во-первых, механизм обработки гораздо более скрупулезный, кроме замен констант их значениями идет последовательное упрощение арифметических, логических и текстовых выражений, а во-вторых, суммарный выигрыш во времени все равно остается очень хорошим.

Описание:
(нажмите для показа/скрытия)

PS: изначально утилита делалась для моей сборки SciTe, но она должна бы без переделок работать и с другими редакторами.

Файл: Скачать (26.03.2016)

Источник: autoit-script.ru
Автор(ы): asdf8
« Последнее редактирование: Март 26, 2016, 10:50:56 от asdf8 »

Русское сообщество AutoIt


Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7809
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Первые тесты оставляют хорошее впечатление. :ok: :beer:


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2556
  • Репутация: 434
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
что делаю не так? после обработки в скрипте масса ошибок типа
_ArrayDelete(): undefined function.
_ArrayDelete($90, 0)
~~~~~~~~~~~~~~~~~~~^
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
joiner  [?]
Цитировать
после обработки в скрипте масса ошибок типа
Мы говорим о каком-то абстрактном скрипте?

Русское сообщество AutoIt


Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2556
  • Репутация: 434
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
кончено об абстрактном, другими не занимаюсь. :)

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
joiner  [?]
Цитировать
кончено об абстрактном, другими не занимаюсь.
Скачал файл по ссылке, запустил обработку файла JMPack.au3 - выдало одно предупреждение:
- Не поддерживаемые параметры функции :: Call($TRAYNOTIFYIDS[$nID][5], $nID, $lParam)Никаких синтаксических ошибок в коде, после обработки, нет.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2556
  • Репутация: 434
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
asdf8
вот поэтому я и спросил, что делаю не так. ты с какими ключами запускал обработку?
AutoIT 3.3.12.0

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
joiner  [?]
Цитировать
какими ключами запускал обработку?
Перепробовал все режимы.

Цитировать
вот поэтому я и спросил, что делаю не так.
Хотелось бы узнать - что же было сделано? Думаю, так ускорим разбор полетов.


Добавлено: Январь 28, 2016, 02:31:25
Скорее всего дело в этом:

asdf8  [?]
Цитировать
/AutoIt3Dir="Path" - параметр поддерживается только в командной строке и задает папку с установленным AutoIt, который и будет использоваться.
Если этот параметр не задан AutoIt будет искаться в следующем порядке:
в переменной среды AutoItPath
в переменной SciTe AutoIt3Dir
на два уровня выше, чем Au3Stripper
« Последнее редактирование: Январь 28, 2016, 02:31:25 от asdf8, Причина: Объединение сообщений »

Русское сообщество AutoIt


Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2556
  • Репутация: 434
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
я компилировал твою утилиту и запустил  с параметром окна. там указал путь к папке AutoIT
на выходе получил обработанный скрипт. проверка на синтаксис выдала ошибки. ну и, естественно, после компиляции мой код не запустился


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Обновил утилиту:
  • Исправлена установка папки AutoIt в оконном режиме
  • В случае отсутствия подключаемых файлов в консоль выводится сообщение и обработка завершается ошибкой.

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1201
  • Репутация: 169
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
asdf8 прошу прощения, но у меня утилита отказывалась работать потому, что так совпало, что ни один из нижеперечисленных критериев поиска не дал результата.
... Если этот параметр не задан AutoIt будет искаться в следующем порядке:
  • в переменной среды AutoItPath
  • в переменной SciTe AutoIt3Dir
  • на два уровня выше, чем Au3Stripper
...
Только после того как сделал так:
(нажмите для показа/скрытия)
... все получилось.
« Последнее редактирование: Октябрь 22, 2016, 10:14:55 от Alofa »

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Alofa  [?]
Цитировать
у меня утилита отказывалась работать потому, что так совпало, что ни один из нижеперечисленных критериев поиска не дал результата
В реестре тоже может не быть нужного параметра или он может не совпадать с нужной версией AutoIt, поэтому и не стал использовать этот вариант. Еще можно передать этот параметр через командную строку.
Главное - чтобы документированные возможности правильно работали.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2556
  • Репутация: 434
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
скачал последнюю версию утилиты.
запустил с параметром /GuiMode
Появилось окошко, отметил что надо. На выходе получил работоспособный код.
Запускал из батника.
Далее, в батнике меняю только имя скрипта, ну, чтобы другой код обработать. Окно стриппера не появляется.
И так и сяк - результат нулевой.
asdf8, в чем может быть косяк?Может где-то процесс заклинило?

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1201
  • Репутация: 169
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
... в чем может быть косяк?
Может быть в пробелах пути к файлу? $CmdLine этого не любит без кавычек.


Добавлено: Октябрь 22, 2016, 15:30:42
asdf8 Поздравляю с Гуруизацией Вас :beer:
« Последнее редактирование: Октябрь 22, 2016, 15:33:43 от Alofa »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2556
  • Репутация: 434
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Alofa  [?]
Цитировать
Может быть в пробелах пути к файлу? $CmdLine этого не любит без кавычек.
:)

joiner  [?]
Цитировать
Далее, в батнике меняю только имя скрипта, ну, чтобы другой код обработать. Окно стриппера не появляется.
:)

Русское сообщество AutoIt

Re: Au3Stripper - очистка кода от неиспользуемых функций и переменных
« Ответ #14 Отправлен: Октябрь 22, 2016, 16:44:01 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
9 Ответов
7232 Просмотров
Последний ответ Май 29, 2010, 00:48:55
от CreatoR
4 Ответов
3883 Просмотров
Последний ответ Сентябрь 15, 2010, 14:22:36
от Heler
2 Ответов
2964 Просмотров
Последний ответ Январь 22, 2011, 09:40:43
от NoMad73rus
2 Ответов
2307 Просмотров
Последний ответ Октябрь 03, 2011, 10:45:46
от ZaEzzz
5 Ответов
2960 Просмотров
Последний ответ Июнь 10, 2012, 11:40:53
от lazarxxx
8 Ответов
3592 Просмотров
Последний ответ Июнь 27, 2012, 17:03:05
от AZJIO
4 Ответов
2070 Просмотров
Последний ответ Август 19, 2013, 14:11:13
от joiner
4 Ответов
1606 Просмотров
Последний ответ Июль 02, 2015, 10:40:13
от madmasles
69 Ответов
10794 Просмотров
Последний ответ Октябрь 23, 2015, 00:47:36
от CreatoR