Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: GUI > Help компиляция


Автор: KuraiNeko 28.4.2010, 04:41
Необходима помощь ну не кодеру ни в каком контексте, перл в глаза увидел совсем недавно, когда встала необходимость скомпилить тулзу с поддержкой кириллицы, поскольку лукосартсы забили на все это дело.

В самом коде тулзы вроде разобрался и по сути локаль вроде как сделал.
Настал вопрос сбора экзешника и тут получил проблемку..

user posted image

Как я понял перл затребовал некоторые модули. Ну собственно вошкаться с koi8-r смысла не было в финальной версии доделки под ру локаль пересадил на utf8
Но остальные модули это проблема. Пробовал найти, скачать однако при подключении папки с дополнительными модулями ловю такой момент, что краснота остается.

Сам скрипт:

http://filebeam.com/79e92d2b721b105109ce15ae56f1df38

Если кто сможет помочь с модулямими ли или уже компиляцией - буду очень благодарен, да и не я один.


Автор: KuraiNeko 28.4.2010, 07:43
И даже найденные паки которые собирался подключить чтобы собрать экзешник не покрывают всех необходимостей, фиг с ним найти как подключить модули думаю не так и сложно в этих самых интернетах.
Но паков:
Win32API::Ini;
Bioware::GFF 0.65;
Bioware::TLK 0.02;

Я нарыть немогу и поэтому обратился за помощью)

Автор: KuraiNeko 28.4.2010, 12:43
Добавил все модули вроде, но теперь началось требование дллок в auto..

Warning: auto\Tk\Event\Event.dll not found

Что делать дальше пока мозги не доперли, помощь так и нужна.

Автор: shamber 28.4.2010, 13:07
KuraiNeko
1. добавлять dll.
2. поменять пакер.

Автор: KuraiNeko 28.4.2010, 13:13
Пробовал добавлять дллки. прям по директориям как запрос и идет.
В итоге все равно ноль внимания на них, пишет что отсутствуют.
С перлом ну вообще незнаком может думал какие особые манипуляции требуются или еще что.

А по поводу пакера какой совет? Каким лучше воспользоваться?

Автор: KuraiNeko 28.4.2010, 15:17
user posted image

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

Автор: shamber 28.4.2010, 15:38
Цитата(KuraiNeko @  28.4.2010,  07:43 Найти цитируемый пост)
Bioware::GFF 0.65;
Bioware::TLK 0.02;

эти модулли у вас есть?

Автор: KuraiNeko 28.4.2010, 16:03
Все 3
Win32API::Ini;
Bioware::GFF 0.65;
Bioware::TLK 0.02;


Автор: shamber 28.4.2010, 19:49
Вечером посмотрю

Автор: shamber 28.4.2010, 20:42
KuraiNeko, чего он от меня хочет?
user posted image

Автор: shamber 28.4.2010, 23:56
запаковал я ваш скрипт с помощью CavaPackager. Размер Exe 10 метров. 
Выложите то чего мне не хватает для запуска редактора. Код нужно погонять.

Автор: KuraiNeko 29.4.2010, 03:32
Извиняюсь я с сибири)
У нас тут ночь была уже)

http://filebeam.com/3f48e1b0aaebacc464237797ec688b00


http://filebeam.com/7b1ca380a6445eb3bd4c07feff98b01a

Возможно затребует еще .dlg файлы незнаю. Но вот пока 2 файла диалоговых.
Котор и ТСЛ

Автор: shamber 29.4.2010, 09:46
KuraiNeko, скрин сделайте как у вас экран выглядит, когда скрипт запущен, а то у меня пустота.

Автор: KuraiNeko 29.4.2010, 14:49
Могу дать готовый скомпиленный пиндосами скрипт но он работает только по latin1 поэтому и возникла необходимость пересбора с работой по utf8

http://www.starwarsknights.com/mtools/dlgeditor_232.zip

Автор: shamber 29.4.2010, 20:17
KuraiNeko, дайте мне Dialog files

Автор: KuraiNeko 30.4.2010, 03:33
Вот держите.
Думаю пары хватит.

Автор: KuraiNeko 6.5.2010, 18:27
Скомпилировал сам но имею проблемки, один фиг не понимает тулза русскую локаль.

Автор: shamber 6.5.2010, 22:37
KuraiNeko, вот и у меня также.  Я так понимаю русская локаль должна проявляться в нормальных буквах в диалогах а не крякозябры. Правильно?

Автор: KuraiNeko 7.5.2010, 03:08
Да.

Причем я бы мог списать на отсутствие поддержки изначально локали в файлах и прочее бла бла как говорили 'спецы' на биоварах.

Но тут есть одно но, русская кодировка не поддерживается даже в поиске пути до dlg файлов. А тут даже путь до них не отображается, а это значит проблема в самом скрипте ну или тулсете)

Автор: shamber 7.5.2010, 08:56
KuraiNeko, там нужно с Encode работать, он вам поможет решить проблемы и с русскими путями к файлам и текстом.

Автор: KuraiNeko 7.5.2010, 09:28
Изначально вносил изменения в некоторые моменты ибо были настроены под latin1:

Код

--
use Unicode::String qw(utf8);
--

        $stringed_animlist='';
        for my $item ($animation_list_current->get(0,'end')) {
          $stringed_animlist.="~~$item";
        }
        if ($txtStrRef_var==-1) {
            my $us=Unicode::String->new($txtText1->get('1.0','end'));
            $txtText_var=$us->utf8;

        }
        else {
            my $us=Unicode::String->new($txtText2->get('1.0','end'));
            $txtText_var=$us->utf8;

        }
        chomp $txtText_var;

----

        if ($txtStrRef_var==-1) {
            my $us=Unicode::String->new($txtText1->get('1.0','end'));
            my $new_text=$us->utf8;

            #my $new_text=Unicode::String::utf8($txtText1->get('1.0','end'));
            #$new_text =~ s/\000//;
            chomp $new_text;

----



Далее обнаружил в коде еще работу со шрифтами не поддерживающими кириллицу, перештопал.

Но вот по поводу энкода нуждаюсь в объяснениях.
хотя конечно было подозрение что возможно $us->utf8; тут есть над чем подумать, с синтаксисом перла не знаком, возможно буковное обозначение локали. мол используем US под enUs и если провал то ее же.

Но думаю это слишком примитивное мышление. А может и нет незнаю.

Автор: KuraiNeko 30.6.2010, 16:59
Завел:

use encoding 'cp1251', STDOUT => 'koi8-r';

внес кое какие изменения.

        }
        if ($txtStrRef_var==-1) {
            my $us=Unicode::String->new($txtText1->get('1.0','end'));
            $txtText_var=$us->latin1;

        }
        else {
            my $us=encoding->new($txtText2->get('1.0','end'));
            $txtText_var=$us->cp1251;

На выходе получил:

Автор: KuraiNeko 30.6.2010, 17:01
Далее естественно уткнулся в проблему внесения данных в тлк и dlg

Как понял именно тут задается часть относительно внесений писанины новой:

        if ($txtStrRef_var==-1) {
            my $us=Unicode::String->new($txtText1->get('1.0','end'));
            my $new_text=$us->utf8;

            #my $new_text=Unicode::String::utf8($txtText1->get('1.0','end'));
            #$new_text =~ s/\000//;
            chomp $new_text;

Ибо удалось тут через энкодинг избавиться от изначально крокозябринга при написании текста, но дальше пошли ошибки ошибки и нерабочесть, невозможность внести изменения собственно говоря в файл.

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