Помогите написать скрипт
- Author
- Message
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Это да. Но я ещё думал о том, что скрипт меняет порядок строк. Хотя этот момент не был оговорен в условии задачи: нужно ли сохранять изначальный порядок строк, инвертируя символы в каждой строке, или же проинвертировать всё, включая и порядок строк.Infocatcher wrote:Там же, вроде, "\r" по умолчанию отдает.
Мысль в тему:
Способность говорить сложно о простом приходит с многолетней практикой. Это очень полезно для философов, психологов, юристов и т.п. Но не для программистов: тут всё наоборот. Чем проще input, тем эффективней output.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
А, это.DV wrote:нужно ли сохранять изначальный порядок строк
Жаль, что мелкомягкие не приделали еще Array.map().
Чтобы было:
reverseEachLine.js
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:Мысль в тему
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
То то я смотрю в каждом втором скрипте вместоДа как-то смысла особого нет, для одного-то применения.
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);
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
FeyFre
Ну то дело вкуса. Мне удобнее цифири писать с обязательной докой возле них.
В констах безусловно есть достоинство - в одном месте определил и всё, и меняешь потом в одном месте, если что-то поменялось. Но мне не нравится, что для вытягивания 1-2 констант надо подгружать весь файл.. грамотнее бы разбивку организовать.
Ну то дело вкуса. Мне удобнее цифири писать с обязательной докой возле них.
В констах безусловно есть достоинство - в одном месте определил и всё, и меняешь потом в одном месте, если что-то поменялось. Но мне не нравится, что для вытягивания 1-2 констант надо подгружать весь файл.. грамотнее бы разбивку организовать.
А вот это поддерживаю - сильно усложняет и чтение, и программинг, и поддержку кода.FeyFre wrote:(Уже не говорю о постоянных магических смещениях относительно каких-то там указателей)
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
VladSh
А вот уже который раз сажусь за создание AkelDll.js и AkelEdit.js
А какой раз я сажусь за врапперы вокруг указателей на часто используемые структуры(вместо var name = AkelPad.MemRead(mem+_X64?160:144,DT_DWORD) делать что-то типа var pFrameData = FRAMEDATA(mem); var name = pFrameData.lpszFileName )
А вот уже который раз сажусь за создание AkelDll.js и AkelEdit.js
А какой раз я сажусь за врапперы вокруг указателей на часто используемые структуры(вместо var name = AkelPad.MemRead(mem+_X64?160:144,DT_DWORD) делать что-то типа var pFrameData = FRAMEDATA(mem); var name = pFrameData.lpszFileName )
Ну кто ж виноват что пишите примитивные скрипты? Моим скриптам приходится 2-з десятка констант использовать, минимум.Но мне не нравится, что для вытягивания 1-2 констант надо подгружать весь файл.
Ага, а потом сбивку? Включение базового прокси header-файла Windows SDK windows.h приводит к включению ещё 58 header файлов(исключая C-шные header-ы, декораторы деклараций и выравниватели памяти в структурах), в которых собственно и определяется вся начинка(это только базовый функционал). Если хорошенько попросить препроцессор, то это число сокращается до 19-ти, а если очень попросить то до 17. Тут вопрос встает: а стоит ли оно того?грамотнее бы разбивку организовать.
Типа так 273 /*WM_COMMAND*/ ? Ну, ну. У меня на 10 строчек 20 таких случаев, и вот внезапно мне приспичило закомментировать эти строчки. `/*` вначале и `*/` в конце. Угадайте что у меня получится? Правильно, комментарий дотянется до превого же `*/` и на этом закончится.Ну то дело вкуса. Мне удобнее цифири писать с обязательной докой возле них.
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Оо какие сюрпризы?? Опера полностью удовлетворяет ECMA262 5.1 минус мелкое исключение(parseInt() по прежнему распознает строки начинающиеся с 0 как восьмеричные, хотя стандарт запретил это.) А больше сюрпризов и нету.Хотя, по большому счету, сюрпризы от новых версий Оперы обычно куда внезапнее.
Говорим за себя.тут все привыкли к ословодству.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Да разные, я только изредка веб-разработками занимаюсь и записей не веду.FeyFre wrote:Оо какие сюрпризы?? Опера полностью удовлетворяет ECMA262 5.1 минус мелкое исключение(parseInt() по прежнему распознает строки начинающиеся с 0 как восьмеричные, хотя стандарт запретил это.) А больше сюрпризов и нету.
А сюрпризы обычно на уровне взаимодействия с DOM – то не перерисуется что-нибудь после изменения, то еще что-нибудь.
А потом они могут изменить приведение нативных функций к строке и выдать вместо "[native code]" "/* source code not available */", а потом вернуть как было (вроде, вернули, не проверял).
Или <noscript> вдруг сломают, и он перестанет отображаться (сейчас уже работает).
Дело не столько в реальных проблемах, сколько в их неожиданности. А вот в IE как было все по-своему сделано, так и работает. Через не то место, но вполне стабильно. Хотя 9-й версии хоть что-то менять стали типа поддержки addEventListener().
http://www.google.ru/search?as_q=%D0%BD ... ascript.ru
Но реальных проблем актуальных версий назвать сразу не могу.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Никто не виноват, я их пишу такими специально Потому что исхожу всегда из принципа достаточности, - считаю, что пихать где не попадя вызовы WinAPI, это извращение. Взять большинство скриптов с диалогами, - вроде всё красивенько так.. а работать неудобно, т.к. чаще всего нужно именно запустить скрипт с часто используемыми параметрами из меню/тулбара/хоткея, а не постоянно разглядывать диалоги с кучей чекбоксов и радиобаттонов... Мои скрипты как раз и доказывают, что 95% задач прекрасно решаются без "пушки по воробьям"; 'примитивность', т.е. простота, в этом случае только плюс.FeyFre wrote:Ну кто ж виноват что пишите примитивные скрипты?
> Opera
Пример: window.getSelection() ещё в 10.10 сломали (не работало в search-полях и т.п.), с 11.50 в полях поправили, но на странице продолжает глючить.
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
А ткните мне пальцем в стандарт. А то я что-то не нашел. Вот нашелПример: 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