Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Запуск скрипта с параметрами в редакторе SciTE


Автор: Suppir 14.4.2011, 15:21
Пишу большой perl-скрипт из-под Scite. Нужно запустить скрипт с параметрами. В редакторе Scite выбираю "вид>параметры". Указываю два параметра. Запускаю скрипт - в $ARGV[0] и $ARGV[1] ничего нет. 


Автор: mishnik 30.4.2011, 13:32
предлагаю повесить разработчиков scite
чтобы работала эта опция
из русского help файла:

Цитата

В строке значения параметра command. можно использовать переменные $(1) .. $(4). Например, так:


command.11.*=*CMD /K COPY $(1) $(2) 
Эти переменные можно задать предварительно (как и все остальные пользовательские переменные), а можно и через немодальное диалоговое окно "Параметры" (Shift+F8) в меню "Вид | Параметры". Пока диалог открыт, все пункты меню и горячие клавиши главного окна остаются активными, поэтому можно несколько раз запустить одну и ту же команду с разными параметрами.
Данное окно может возникать автоматически, для этого необходимо поместить в начале команды символ '*' (как в вышеприведенном примере). При этом начальный символ "*" в исполняемую команду не включается.
Если диалог "Параметры" уже открыт, то символ '*' в командной строке просто игнорируется (т.е. второго диалогового окна при повторном вызове этой же команды не появится).





куда писать эту строчку я так и не понял,
разобраться в этом количестве настроечных файлов - невозможно

переходите на Padre
там я знаю как это сделать

Автор: Suppir 30.4.2011, 14:17
Padre и ComodoEdit не поддерживают dos-кодировку, к сожалению. У меня часть файлов базы данных выливается в кодировку dos. Скрипт пишу тоже в такой кодировке. Иначе - придется перекодировать каждую строку в ANSI (очень долго).

Автор: alezzz 30.4.2011, 18:02
Цитата(Suppir @  30.4.2011,  14:17 Найти цитируемый пост)
Padre и ComodoEdit не поддерживают dos-кодировку

Я пользуюсь AbsolutePerl, DOS866 кажется поддерживается, хотя сам не пользовался, ввод параметров удобный.
Цитата(Suppir @  30.4.2011,  14:17 Найти цитируемый пост)
Иначе - придется перекодировать каждую строку в ANSI (очень долго).

Почему долго? smile

Автор: Suppir 30.4.2011, 19:21
alezzz, парсятся несколько гигабайт данных. Во время написания скрипт прогоняю сотни-тысячи раз. Большую часть времени приходится просто сидеть и ждать, пока он отработает... Поставил на время твердотельный винчестер - вроде, побыстрее работает, но от процессора тоже многое зависит, а у меня простенький Pentium E5300.

Автор: mishnik 30.4.2011, 19:32
Suppir, 
Цитата(Suppir @  30.4.2011,  14:17 Найти цитируемый пост)
Иначе - придется перекодировать каждую строку в ANSI (очень долго). 


Код

 use Convert::Cyrillic;

        $src = 'dos';
        $dst = 'win';
        $SrcBuf = 'text in dos here';
        $DstBuf = Convert::Cyrillic::cstocs ($Src, $Dst, $SrcBuf); 


Добавлено через 3 минуты и 29 секунд
http://perlgeek.de/en/article/encodings-and-unicode

Автор: Suppir 30.4.2011, 19:37
Для конвертации использую:

use Encode;

sub dos2win{Encode::from_to($_[0], 'cp866', 'windows-1251')}

sub win2dos{Encode::from_to($_[0], 'windows-1251', 'cp866')}

Добавлено через 2 минуты и 32 секунды
mishnik, этого модуля нет в стандартном ActivePerl. 
95% пользователей не смогут установить себе дополнительный модуль.

Автор: mishnik 1.5.2011, 00:51
Suppir, 
да с активом могут быть проблемы, а на strawberry встал без проблем через cpan

Автор: shamber 1.5.2011, 01:43
когда я последний раз его ставил, проблем не было никаких.

Автор: mishnik 1.5.2011, 20:25
Suppir, 
я же дал выдержку из документации по scite,
надо только внимательнее прочитать документацию и разобраться в какой конфиг писать
Код

command.11.*=*CMD /K COPY $(1) $(2) 
command.11.*=*perl $(1) $(2) 

вы доку читали?

Автор: Suppir 1.5.2011, 21:13
Что-то я не могу разобраться в этом коде.

Автор: mishnik 1.5.2011, 22:21
а чем вам Padre не угодил есть такая настройка параметров?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)