Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Infocatcher
Уместно ли будет спросить - а что именно вы ожидали бы увидеть?
Более "мусорный мусор"?
Ведь как свидетельствует "капитан очевидность": Long -- Contains integer in the range -2,147,483,648 to 2,147,483,647. (это из документации по wsh)

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

opk44
Мне хочется понять, как это все будет работать применительно к указателям на память, особенно на x64. Просто сам JScript вполне нормально считает где-то до 0x20000000000000.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Infocatcher
Tested on Win7 x64, 2GB RAM.
AkelPad x86:

Code: Select all

WScript.Echo(_PtrAdd(100000000,  1)); // -> 100000001
WScript.Echo(_PtrAdd(2147483647, 1)); // -> -2147483648
WScript.Echo(_PtrAdd(2147483648, 1)); // -> -2147483647
WScript.Echo(_PtrAdd(5000000000, 1)); // -> 1

WScript.Echo(typeof _PtrAdd(100000000,  1)); // -> number
WScript.Echo(typeof _PtrAdd(2147483647, 1)); // -> number
WScript.Echo(typeof _PtrAdd(2147483648, 1)); // -> number
WScript.Echo(typeof _PtrAdd(5000000000, 1)); // -> number
AkelPad x64:

Code: Select all

WScript.Echo(_PtrAdd(100000000,  1)); // -> 100000001
WScript.Echo(_PtrAdd(2147483647, 1)); // -> \02147483648 (not visible, because first character is NULL)
WScript.Echo(_PtrAdd(2147483648, 1)); // -> \02147483649 (not visible, because first character is NULL)
WScript.Echo(_PtrAdd(5000000000, 1)); // -> 1

WScript.Echo(typeof _PtrAdd(100000000,  1)); // -> number
WScript.Echo(typeof _PtrAdd(2147483647, 1)); // -> string
WScript.Echo(typeof _PtrAdd(2147483648, 1)); // -> string
WScript.Echo(typeof _PtrAdd(5000000000, 1)); // -> number

sStr1 = _PtrAdd(2147483647, 1);
sStr2 = "";
for (i = 0; i < sStr1.length; ++i)
  sStr2 += sStr1.charCodeAt(i) + ",";
WScript.Echo(sStr1.length); // -> 11
WScript.Echo(sStr2);        // -> 0,50,49,52,55,52,56,51,54,52,56,

sStr1 = _PtrAdd(2147483648, 1);
sStr2 = "";
for (i = 0; i < sStr1.length; ++i)
  sStr2 += sStr1.charCodeAt(i) + ",";
WScript.Echo(sStr1.length); // -> 11
WScript.Echo(sStr2);        // -> 0,50,49,52,55,52,56,51,54,52,57,

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

KDJ wrote:Extended version of "Find/Replace" dialog - part 2.
...

Code: Select all

/********************************************
FindReplaceEx.js - ver. 2015-03-28
Interface language
Language:      Russian (1049)
Translated by: F.Phoenix, Andrey_A_A, VladSh
********************************************/
...
sHlpExcludePrev    = 'исключить предыдущее из результата';
...
sHlpLazy           = 'добавить в конце для ленивого квантификатора';
sHlpPossesive      = 'добавить в конце для сверхжадного квантификатора';
...
sHlpAtomicGrouping = 'атомарная группа (незапоминающая)';
...
- Russian by F. Phoenix, Andrey_A_A, VladSh
to F. Phoenix, Andrey_A_A, VladSh
Предлагаю уточнить вышеприведенную часть перевода. KDJ, попросил согласования поправки с переводчиками...

Offline
Posts: 14
Joined: Sat Jul 05, 2008 11:30 am
Location: Odesa, Ukraine

Не работает SaveAs.js

Post by ewild »

- Win 8.1 x64, Win7 x64
- AkelPad 4.9.3 x64, x86; все компоненты в актуальном состоянии
- CommonFunctions.js Version: 2.16 (2014.12.17)
- SaveAs.js Version: 2.22 (2014.12.17)

обновил скрипт до актуальной версии и он перестал работать:

Code: Select all

Scripts плагин
Скрипт:
AkelPad\x86\AkelFiles\Plugs\Scripts\lnclude\CommonFunctions.js
Строка: 109
Символ: 4
Ошибка: 'undefined' - есть null или не является объектом
Код: 800A138F
Источник: Ошибка выполнения Microsoft JScript

Code: Select all

AkelPad\x64\AkelFiles\Plugs\Scripts\lnclude\CommonFunctions.js
Строка:	109
Символ: 4
Ошибка: 'undefined' - есть null или не является объектом
Код: 800A138F
Источник: Ошибка выполнения Microsoft JScript

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

ewild
Попробуйте пока скачать сборку отсюда, там всё должно по идее работать.
Последние версии, которые у меня на компе, не могу залить, т.к. многие скрипты поменялись, а некоторые нет, - будет ещё большее рассогласование. Когда все доведу до ума, тогда выложу обновлённый архив со скриптами. А пока извините за неудобства.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

ewild
Прошу прощения за любопытство, а с какими параметрами запускаете?

Offline
Posts: 14
Joined: Sat Jul 05, 2008 11:30 am
Location: Odesa, Ukraine

Post by ewild »

VladSh
Да, я уже её пробовал.
Там CommonFunctions.js и SaveAs.js те же, что у меня.
Но при этом в вашей сборке SaveAs.js частично работает:
Не вылетает как у меня, но не подставляет "//Берём первую строку, как это делает MS Word" при отсутствии выделения :)

Skif_off
Без параметров у меня всегда было

Code: Select all

# Save as
-"" Call("Scripts::Main", 1, "SaveAs.js") Icon("%a\AkelFiles\AkelPad.icl", 47)

Offline
Posts: 14
Joined: Sat Jul 05, 2008 11:30 am
Location: Odesa, Ukraine

Post by ewild »

Методом научного тыка у меня заработало как и в авторской сборке.
Для этого был необходим файл:

Code: Select all

AkelFiles\Plugs\Scripts\Include\Params\FileDialogExtentions.param
В итоге пока верну на место прежние бывшие у меня CommonFunctions.js v1.9 (2011.04.06) и SaveAs.js v2.6 (2011.04.05).

VladSh, спасибо за работу, за скрипты! Буду ждать обновлений.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

VladSh
А можно изменить подстановку типа файла, оставив не только "Все типы" и выбранный тип из подсветки, но и все остальные? Сейчас, чтобы получить в диалоге нужный тип файла, необходимо предварительно переключить схему подсветки, если она не совпадет с нужной (у меня, например, txt.coder используется по умолчанию). Что не очень удобно, если есть желание просто сохранить текст.

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

ewild
Теперь понятно, у меня работало нормально: как оказалось, файл FileDialogExtentions.param был, хотя и для другого.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Skif_off
Когда-то, когда начинал писать, логика в таком поведении была, теперь же иногда надо сохранить в другом расширении и... Так что тоже планирую это сделать, т.к. самого задолбало :)

ewild
Спасибо за то, что обнаружили баг.
Исправил; будет доступно после обновления.
Last edited by VladSh on Wed Apr 29, 2015 1:13 pm, edited 1 time in total.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

YuS wrote:
KDJ wrote:Extended version of "Find/Replace" dialog - part 2.
...

Code: Select all

/********************************************
FindReplaceEx.js - ver. 2015-03-28
Interface language
Language:      Russian (1049)
Translated by: F.Phoenix, Andrey_A_A, VladSh
********************************************/
...
sHlpExcludePrev    = 'исключить предыдущее из результата';
...
sHlpLazy           = 'добавить в конце для ленивого квантификатора';
sHlpPossesive      = 'добавить в конце для сверхжадного квантификатора';
...
sHlpAtomicGrouping = 'атомарная группа (незапоминающая)';
...
- Russian by F. Phoenix, Andrey_A_A, VladSh
to F. Phoenix, Andrey_A_A, VladSh
Предлагаю уточнить вышеприведенную часть перевода. KDJ, попросил согласования поправки с переводчиками...
VladSh
There is another not translated text:

Code: Select all

sHlpExcludePrev    = 'excludes previous chars from result';

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

KDJ
Это о регулярных выражениях? Если да, то я плохо разбираюсь в них, и мне будет трудно перевести этот текст корректно.


P.S. По Translator.js.
Мы когда-то пытались сделать, чтобы переводчик сохранял переводы строк и делали replace. Я недавно разбирался с этим и оказалось, что всё это ненужно, - мы просто неправильно работали с форматом новой строки.
Пример можно глянуть в TranslateWithGoogleAPI.js - var newline... Скрипт версии 2.10, он обновлён на странице по ссылке (в архиве пока я не обновлял).

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

VladSh wrote:KDJ
Это о регулярных выражениях? Если да, то я плохо разбираюсь в них, и мне будет трудно перевести этот текст корректно.
Это ведь, по сути, краткая памятка/напоминалка для регулярных выражений, там развернутого, дословного перевода и не надо, главное чтобы смысл напоминало... а более полное описание есть в руководстве AP.

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

VladSh, простите, а почему бы в скрипте TranslateWithGoogleAPI.js не заменить:

Code: Select all

nResultAction = AkelPad.MessageBox(AkelPad.GetEditWnd(), "Result text:" + "\r\r" + resultText + "\r\r" + "Yes - replace selected (source) text" + "\r" + "No - copy to clipboard", WScript.ScriptName, 32 + 3);
if (nResultAction == 2) WScript.Quit();
чем-то вроде этого:

Code: Select all

nResultAction = AkelPad.MessageBox(AkelPad.GetMainWnd(),
                            "Перевод:\n\n" + resultText,
                             WScript.ScriptName, 0, 0,
                             6  /*IDYES   */, "Заменить",   0,
                             7  /*IDNO    */, "Копировать", 0,
                             2  /*IDCANCEL*/, "Отмена",     0x1 /*BMB_DEFAULT*/);
if (nResultAction == 2) WScript.Quit();
Нагляднее, как-то :) Ну, хозяин - барин :oops:
Locked