Page 52 of 99

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

Posted: Fri Apr 17, 2015 6:26 am
by Infocatcher
opk44
Мне хочется понять, как это все будет работать применительно к указателям на память, особенно на x64. Просто сам JScript вполне нормально считает где-то до 0x20000000000000.

Posted: Fri Apr 17, 2015 3:56 pm
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,

Posted: Tue Apr 28, 2015 6:29 pm
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, попросил согласования поправки с переводчиками...

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

Posted: Tue Apr 28, 2015 9:00 pm
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

Posted: Tue Apr 28, 2015 10:56 pm
by VladSh
ewild
Попробуйте пока скачать сборку отсюда, там всё должно по идее работать.
Последние версии, которые у меня на компе, не могу залить, т.к. многие скрипты поменялись, а некоторые нет, - будет ещё большее рассогласование. Когда все доведу до ума, тогда выложу обновлённый архив со скриптами. А пока извините за неудобства.

Posted: Wed Apr 29, 2015 12:27 am
by Skif_off
ewild
Прошу прощения за любопытство, а с какими параметрами запускаете?

Posted: Wed Apr 29, 2015 12:32 am
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)

Posted: Wed Apr 29, 2015 12:53 am
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, спасибо за работу, за скрипты! Буду ждать обновлений.

Posted: Wed Apr 29, 2015 1:48 am
by Skif_off
VladSh
А можно изменить подстановку типа файла, оставив не только "Все типы" и выбранный тип из подсветки, но и все остальные? Сейчас, чтобы получить в диалоге нужный тип файла, необходимо предварительно переключить схему подсветки, если она не совпадет с нужной (у меня, например, txt.coder используется по умолчанию). Что не очень удобно, если есть желание просто сохранить текст.

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

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

Posted: Wed Apr 29, 2015 9:41 am
by VladSh
Skif_off
Когда-то, когда начинал писать, логика в таком поведении была, теперь же иногда надо сохранить в другом расширении и... Так что тоже планирую это сделать, т.к. самого задолбало :)

ewild
Спасибо за то, что обнаружили баг.
Исправил; будет доступно после обновления.

Posted: Wed Apr 29, 2015 11:24 am
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';

Posted: Wed Apr 29, 2015 1:01 pm
by VladSh
KDJ
Это о регулярных выражениях? Если да, то я плохо разбираюсь в них, и мне будет трудно перевести этот текст корректно.


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

Posted: Wed Apr 29, 2015 7:11 pm
by YuS
VladSh wrote:KDJ
Это о регулярных выражениях? Если да, то я плохо разбираюсь в них, и мне будет трудно перевести этот текст корректно.
Это ведь, по сути, краткая памятка/напоминалка для регулярных выражений, там развернутого, дословного перевода и не надо, главное чтобы смысл напоминало... а более полное описание есть в руководстве AP.

Posted: Thu Apr 30, 2015 5:14 pm
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: