Posted: Thu Feb 02, 2012 4:14 pm
Infocatcher
Спасибо!
Спасибо!
Там же, вроде, "\r" по умолчанию отдает.DV wrote:Могут быть проблемы с переносом строк, однако сама лаконичность скрипта просто заставляет прослезиться
Это да. Но я ещё думал о том, что скрипт меняет порядок строк. Хотя этот момент не был оговорен в условии задачи: нужно ли сохранять изначальный порядок строк, инвертируя символы в каждой строке, или же проинвертировать всё, включая и порядок строк.Infocatcher wrote:Там же, вроде, "\r" по умолчанию отдает.
А, это.DV wrote:нужно ли сохранять изначальный порядок строк
Code: Select all
var lines = AkelPad.GetSelText().split("\r");
for(var i = 0, l = lines.length; i < l; ++i)
lines[i] = lines[i].split("").reverse().join("");
AkelPad.ReplaceSel(lines.join("\r"));
Известное дело: усложнять просто, упрощать – сложно.DV wrote:Мысль в тему
Ну а что мешает приведенную по ссылке реализацию скопипастить в скрипт? Даже редактировать не нужно будет.Жаль, что мелкомягкие не приделали еще Array.map().
естьDV wrote:Мысль в тему...
То то я смотрю в каждом втором скрипте вместоДа как-то смысла особого нет, для одного-то применения.
Code: Select all
AkelPad.Include("win32\\user32.js")
var IDC_DOWORK = 1234;
AkelPad.SendMessage(hwnd,WM_COMMAND,MAKEWPARAM(IDC_DOWORK,BN_CLICKED),0,0);
Code: Select all
AkelPad.SendMessage(hwnd,237,1234,0,0);
А вот это поддерживаю - сильно усложняет и чтение, и программинг, и поддержку кода.FeyFre wrote:(Уже не говорю о постоянных магических смещениях относительно каких-то там указателей)
Это же js, тут все привыкли к ословодству.FeyFre wrote:(Уже не говорю о постоянных магических смещениях относительно каких-то там указателей)
Ну кто ж виноват что пишите примитивные скрипты? Моим скриптам приходится 2-з десятка констант использовать, минимум.Но мне не нравится, что для вытягивания 1-2 констант надо подгружать весь файл.
Ага, а потом сбивку? Включение базового прокси header-файла Windows SDK windows.h приводит к включению ещё 58 header файлов(исключая C-шные header-ы, декораторы деклараций и выравниватели памяти в структурах), в которых собственно и определяется вся начинка(это только базовый функционал). Если хорошенько попросить препроцессор, то это число сокращается до 19-ти, а если очень попросить то до 17. Тут вопрос встает: а стоит ли оно того?грамотнее бы разбивку организовать.
Типа так 273 /*WM_COMMAND*/ ? Ну, ну. У меня на 10 строчек 20 таких случаев, и вот внезапно мне приспичило закомментировать эти строчки. `/*` вначале и `*/` в конце. Угадайте что у меня получится? Правильно, комментарий дотянется до превого же `*/` и на этом закончится.Ну то дело вкуса. Мне удобнее цифири писать с обязательной докой возле них.
Оо какие сюрпризы?? Опера полностью удовлетворяет ECMA262 5.1 минус мелкое исключение(parseInt() по прежнему распознает строки начинающиеся с 0 как восьмеричные, хотя стандарт запретил это.) А больше сюрпризов и нету.Хотя, по большому счету, сюрпризы от новых версий Оперы обычно куда внезапнее.
Говорим за себя.тут все привыкли к ословодству.
Да разные, я только изредка веб-разработками занимаюсь и записей не веду.FeyFre wrote:Оо какие сюрпризы?? Опера полностью удовлетворяет ECMA262 5.1 минус мелкое исключение(parseInt() по прежнему распознает строки начинающиеся с 0 как восьмеричные, хотя стандарт запретил это.) А больше сюрпризов и нету.
Никто не виноват, я их пишу такими специальноFeyFre wrote:Ну кто ж виноват что пишите примитивные скрипты?
А ткните мне пальцем в стандарт. А то я что-то не нашел. Вот нашелПример: window.getSelection() ещё в 10.10 сломали (не работало в search-полях и т.п.), с 11.50 в полях поправили, но на странице продолжает глючить.
1.2. Not in This Specification
This section is not normative.
This specification does not include the following features, which are also found on the Window object in some implementations. It is possible they will defined by other specifications or found in a future version of this specification.
History
ISSUE-59: Should Window 1.0 include history?
Access to frames by name
ISSUE-60: Should Window Object 1.0 include access to frames by name (window.frames)?
Opening new windows
Manipulating UI of existing windows
Window size and position information
Client information ("window.navigator")
Window events
Printing
Focus
Selection
Editing
Networking APIs
Handling of binary data