Page 2 of 31

Posted: Thu Nov 10, 2016 4:20 am
by YuS
KDJ wrote:FindReplaceEx.js
Небольшая корректировка:

Code: Select all

...
sHlpVTab           = 'вертикальная табуляция';
...

Posted: Thu Nov 10, 2016 5:49 am
by VladSh
Sticher78
Лучше идентификатор приложения передавать параметром, т.к. люди могут использовать что-то отличное от "FileZilla".
Типа того:

Code: Select all

// Usage:
// 	-"Сохранить и активировать FileZilla" Call("Scripts::Main", 1, "ActivateFTP.js")
// 	-"Сохранить и активировать OtherProgram" Call("Scripts::Main", 1, "ActivateFTP.js", `-p="OtherProgram"`)

var ID_PROG_DEFAULT = "FileZilla";
var sProgID = AkelPad.GetArgValue("p", ID_PROG_DEFAULT);
// ...
WshShell.AppActivate(sProgID);

Posted: Thu Nov 10, 2016 6:01 pm
by KDJ
YuS, thank you.

FindReplaceEx.js
Corrected Russian translation.

Posted: Fri Nov 18, 2016 9:01 am
by InFive
I run the script FindReplaceEx.js. Click "more" and constantly crashes the window with the text "222". why this is done?

can't we move the way implemented "templates/Packages" in script FindReplaceEx.js to script TextReplace.js?

AkelPad 4.9.8, WinXP x86

Posted: Fri Nov 18, 2016 10:10 pm
by KDJ
FindReplaceEx.js
Fixed: after pressing "More" button, message box is displayed "222".

Posted: Sun Nov 20, 2016 11:19 am
by F. Phoenix
Привык писать в PascalCase, а не camelCase, из-за чего в JavaScript нередко путаюсь, строча по привычке, к примеру, pStr.Length вместо pStr.length. Тем более, что все методы AkelPad в PascalCase, да и эстетически больше нравится.
Встроенных методов и свойств в JS в принципе не так уж и много. Думаю, а нельзя ли их как-то обернуть, написав псевдонимы в каком-нибудь Include-файле? В C# для подобных целей я мог бы использовать методы-расширения*. Есть ли что-то подобное в JS?

* к примеру:

Code: Select all

char CharAt(this string str, int index)
{
	return str.charAt(index);
}
...
var c = "тестовая строка".CharAt(3);

Posted: Sun Nov 20, 2016 8:57 pm
by Infocatcher
F. Phoenix

Code: Select all

String.prototype.CharAt = function() {
	return this.charAt.apply(this, arguments);
};
String.prototype.Substr = function() {
	return this.substr.apply(this, arguments);
};
Но из-за того, что в WSH-версии отсутствуют штуки типа Object.defineProperty(), не удастся сделать новые методы неперечисляемыми, так что все это добро будет отсвечивать при переборе через for(var property in object) { … }
Хотя для строк это и не критично.
И аксессоры типа .length создать не получится. Опять же, из-за ограничений используемой версии: ни того же Object.defineProperty() нет, ни Object.prototype.__defineGetter__()/__defineSetter__().

Posted: Tue Nov 29, 2016 1:10 pm
by InFive
может ли кто сделать скрипт для конвертирования Unix-времени в человекопонятную дату?

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

Posted: Tue Nov 29, 2016 2:29 pm
by Kley
unixTime.js от Infocatcher не пойдет?

Posted: Tue Nov 29, 2016 2:36 pm
by FeyFre

Code: Select all

AkelPad.ReplaceSel(new Date(parseFloat(AkelPad.GetSelText())*1000).toGMTString());

Posted: Tue Nov 29, 2016 4:44 pm
by InFive
Kley wrote:unixTime.js от Infocatcher не пойдет?
конвертирует корректно, только мне надо сделать тысячу замен, для ручной замены это многовато работы...

мне нужно заменять

"lu": "1460262830971"

на вид

"lu": "2016-11-18T18:18:38.2564009+03:00"

миллисекунды, часовой пояс это я смогу вручную быстро добавить... мне бы автоматизировать чтобы заменялись на год-месяц-деньTчас:минуты:секунды - для автоматизации скрипт от Infocatcher вроде неподходит, он работает только над выделенным и выводит разную лишнюю для меня информацию...

Posted: Tue Nov 29, 2016 6:03 pm
by FeyFre
InFive
SearchReplace.js
Что: ("lu"\s*:\s*)"(\d+)"
Чем: return $1+'"'+new Date(parseFloat($2)).toGMTString()+'"'
[X] регулярки
[X] заменить на функцию

ЗЫ: toGMTString() замените на функцию форматирования в нужном формате(там toISOString() )

Posted: Tue Nov 29, 2016 7:57 pm
by InFive
FeyFre wrote:toGMTString() замените на функцию форматирования в нужном формате(там toISOString() )
к сожалению, скрипт SearchReplace.js не поддерживает .toISOString(), по крайней мере у меня не работает...

пришлось сделать так

Code: Select all

return $1+'"'+new Date(parseFloat($2)).getUTCFullYear() + '-' +new Date(parseFloat($2)).getUTCMonth()+ '-' +new Date(parseFloat($2)).getUTCDate()+ 'T' +new Date(parseFloat($2)).getUTCHours()+ ':' +new Date(parseFloat($2)).getUTCMinutes()+ ':' +new Date(parseFloat($2)).getUTCSeconds()+ '.' +new Date(parseFloat($2)).getUTCMilliseconds()+'"'
костыль, но помог...

Posted: Tue Dec 06, 2016 12:33 pm
by VladSh
beotiger
> quoted-printable.js
Разве converter.js от Infocatcher'а не умеет такого?

Posted: Wed Dec 07, 2016 3:16 pm
by beotiger
VladSh, я честно пытался, но не смог. В той версии, что у меня была, нет такой функции, добавил новую с github'а (https://raw.githubusercontent.com/Infoc ... nverter.js), вроде функция заявлена, но где она?