Scripts discussion (4)

Discuss and announce AkelPad plugins
  • Author
  • Message
YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

KDJ wrote:FindReplaceEx.js
Небольшая корректировка:

Code: Select all

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

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

Post 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);

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

Post by KDJ »

YuS, thank you.

FindReplaceEx.js
Corrected Russian translation.

Offline
Posts: 96
Joined: Tue Nov 10, 2015 4:56 am

Post 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

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

Post by KDJ »

FindReplaceEx.js
Fixed: after pressing "More" button, message box is displayed "222".

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post 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);
Last edited by F. Phoenix on Mon Nov 21, 2016 4:26 am, edited 1 time in total.

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

Post 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__().

Offline
Posts: 96
Joined: Tue Nov 10, 2015 4:56 am

Post by InFive »

может ли кто сделать скрипт для конвертирования Unix-времени в человекопонятную дату?

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

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

Post by Kley »

unixTime.js от Infocatcher не пойдет?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Code: Select all

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

Offline
Posts: 96
Joined: Tue Nov 10, 2015 4:56 am

Post by InFive »

Kley wrote:unixTime.js от Infocatcher не пойдет?
конвертирует корректно, только мне надо сделать тысячу замен, для ручной замены это многовато работы...

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

"lu": "1460262830971"

на вид

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

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

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

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

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

Offline
Posts: 96
Joined: Tue Nov 10, 2015 4:56 am

Post 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()+'"'
костыль, но помог...

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

Post by VladSh »

beotiger
> quoted-printable.js
Разве converter.js от Infocatcher'а не умеет такого?

Offline
Posts: 53
Joined: Wed Dec 09, 2015 6:33 pm

Post by beotiger »

VladSh, я честно пытался, но не смог. В той версии, что у меня была, нет такой функции, добавил новую с github'а (https://raw.githubusercontent.com/Infoc ... nverter.js), вроде функция заявлена, но где она?
Post Reply