Scripts discussion (1)
- Author
- Message
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
VladSh
Почему MemAlloc и MemFree вызываются без параметра true? Обсуждалось же.
Почему MemAlloc и MemFree вызываются без параметра true? Обсуждалось же.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Instructor wrote:VladSh
Почему MemAlloc и MemFree вызываются без параметра true? Обсуждалось же.

Спасибо!
EDITED: ещё раз


-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Алгоритм примерно такой:
- создание новой вкладки;
- вставка текста из буфера (у меня на Ctrl+V стоит Command(4403));
- обработка теста примитивным скриптом (обрамление тегами);
- Ctrl+A, Ctrl+X.
Этот цикл повторяется многократно, бывает, в течении нескольких часов, потому более точно расписать не могу(
Единственное: я продолжаю работать с текстом в других вкладках (открываю, редактирую, закрываю...).
Скрипты, работающие со всеми вкладками сразу (перебором) не использую.
- создание новой вкладки;
- вставка текста из буфера (у меня на Ctrl+V стоит Command(4403));
- обработка теста примитивным скриптом (обрамление тегами);
- Ctrl+A, Ctrl+X.
Этот цикл повторяется многократно, бывает, в течении нескольких часов, потому более точно расписать не могу(
Единственное: я продолжаю работать с текстом в других вкладках (открываю, редактирую, закрываю...).
Скрипты, работающие со всеми вкладками сразу (перебором) не использую.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Вот сейчас было точно такое.
Прислали большое письмо, я его вставил в новую вкладку, потом отвечал "уголками" - было много Ctrl+X и Ctrl+V... естественно файл не сохранял. После всей правки: Ctrl+A, Ctrl+C, а потом для интереса запустил UndoAllNoScroll, в результате отменилось совсем немного - осталось 3/4 от всего текста, а должна быть пустая вкладка и файл должен был быть без признака модификации.
Да, и скрипты/плагины не запускал вообще.
Прислали большое письмо, я его вставил в новую вкладку, потом отвечал "уголками" - было много Ctrl+X и Ctrl+V... естественно файл не сохранял. После всей правки: Ctrl+A, Ctrl+C, а потом для интереса запустил UndoAllNoScroll, в результате отменилось совсем немного - осталось 3/4 от всего текста, а должна быть пустая вкладка и файл должен был быть без признака модификации.
Да, и скрипты/плагины не запускал вообще.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 27
- Joined: Sun Mar 16, 2008 10:26 pm
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
kadvlad
Сорри, действительно скрипта в сборнике не было...
Положил скрипт в сборник: DelInsideSpaces.js
Сорри, действительно скрипта в сборнике не было...

Положил скрипт в сборник: DelInsideSpaces.js
Last edited by VladSh on Mon Jan 31, 2011 9:33 am, edited 1 time in total.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Infocatcher
Обнаружился мелкий бажок в _punctuationFixer.js
исходно:результат:
Обнаружился мелкий бажок в _punctuationFixer.js
исходно:
Code: Select all
)))
Code: Select all
) ))
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
VladSh
Ох уж эти смайлики...
[^.!?:;,] => [^.!?:;,()]
_punctuationFixer.js
Ох уж эти смайлики...
Code: Select all
// Fix brackets:
txt = txt
.replace(/(\S)[\t ]*\([\t ]*/g, "$1 (") // text(text -> text (text
.replace(/[\t ]*\)[\t ]*([^.!?:;,()])/g, ") $1"); // text)text -> text) text
_punctuationFixer.js
-
Offline
- Posts: 120
- Joined: Sat Jan 12, 2008 10:16 am
- Location: Shantou, China
shorter code in searchreplace.js and linefilter.js
There is many code like below in searchreplace.js and linefilter.js:
It's waste space, it can be shorter like below:
And function GetLangString is inefficient. You can use the below for insteed:
And for example "GetLangString(STRID_LOWJSCRIPT)" -> "pLowJscript"
In this way the js might be a little quicker and smaller. And the LangString might be more easy to be translated.
Right?
Code: Select all
AkelPad.MemCopy(lpBuffer, pScriptName, _TSTR);
oFunction.AddParameter(0);
oFunction.AddParameter(lpBuffer);
oFunction.AddParameter(0);
oFunction.AddParameter(0x90CA0000); //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX
oFunction.AddParameter(0);
oFunction.AddParameter(0);
oFunction.AddParameter(392);
oFunction.AddParameter(223);
oFunction.AddParameter(hMainWnd);
oFunction.AddParameter(0); //ID
oFunction.AddParameter(hInstanceDLL);
oFunction.AddParameter(DialogCallback); //Script function callback. To use it class must be registered by WindowRegisterClass.
hWndDialog=oFunction.Call("user32::CreateWindowEx" + _TCHAR);
Code: Select all
hWndDialog=CreateWindowEx(0,pScriptName,0,0x90CA0000,0,0,392,223,hMainWnd,0,hInstanceDLL,DialogCallback);
// ...
function CreateWindowEx(dwExStyle,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam)
{
AkelPad.MemCopy(lpBuffer, lpClassName, _TSTR);
oFunction.AddParameter(dwExStyle);
oFunction.AddParameter(lpBuffer);
oFunction.AddParameter(lpWindowName);
oFunction.AddParameter(dwStyle);
oFunction.AddParameter(x);
oFunction.AddParameter(y);
oFunction.AddParameter(nWidth);
oFunction.AddParameter(nHeight);
oFunction.AddParameter(hWndParent);
oFunction.AddParameter(hMenu);
oFunction.AddParameter(hInstance);
oFunction.AddParameter(lpParam);
hWndWindow=oFunction.Call("user32::CreateWindowEx" + _TCHAR);
return hWndWindow;
}
Code: Select all
var pLowJscript
var pWhat
var pWith
var pMatchCase
var pMultiLine
var pEscapeSeq
var pFunction
var pDirection
var pForward
var pBackward
var pBeginning
var pInSel
var pAllFiles
var pFindNext
var pReplace
var pReplaceAll
var pCancel
var pSyntaxError
var pFinished
var pCountFiles
var pCountChanges
var nLangID;
nLangID=oFunction.Call("kernel32::GetUserDefaultLangID");
nLangID=nLangID & 0x3ff; //PRIMARYLANGID
if (nLangID == 0x19) //LANG_RUSSIAN
{
pLowJscript = "\u0412\u0435\u0440\u0441\u0438\u044F\u0020\u004A\u0053\u0063\u0072\u0069\u0070\u0074\u0020\u043D\u0438\u0436\u0435\u002C\u0020\u0447\u0435\u043C\u0020\u0035\u002E\u0035\u002E";
pWhat = "\u0427\u0442\u043E\u003A";
pWith = "\u0427\u0435\u043C\u003A";
pMatchCase = "\u0423\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C\u0020\u0440\u0435\u0433\u0438\u0441\u0442\u0440";
pMultiLine = "\u041C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u043E";
pEscapeSeq = "\u0045\u0073\u0063\u002D\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438";
pFunction = "\u0417\u0430\u043C\u0435\u043D\u044F\u0442\u044C\u0020\u043D\u0430\u0020\u0444\u0443\u043D\u043A\u0446\u0438\u044E";
pDirection = "\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435";
pForward = "\u0412\u043D\u0438\u0437";
pBackward = "\u0412\u0432\u0435\u0440\u0445";
pBeginning = "\u0421\u0020\u043D\u0430\u0447\u0430\u043B\u0430";
pInSel = "\u0412\u0020\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0438";
pAllFiles = "\u0412\u0441\u0435\u0020\u0444\u0430\u0439\u043B\u044B";
pFindNext = "\u041D\u0430\u0439\u0442\u0438\u0020\u0434\u0430\u043B\u0435\u0435";
pReplace = "\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C";
pReplaceAll = "\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C\u0020\u0432\u0441\u0451";
pCancel = "\u041E\u0442\u043C\u0435\u043D\u0430";
pSyntaxError = "\u0421\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0020\u043E\u0448\u0438\u0431\u043A\u0430\u003A\n \\\\ - \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0439\u0020\u0441\u043B\u044D\u0448\n \\r - \u043A\u043E\u043D\u0435\u0446\u0020\u0441\u0442\u0440\u043E\u043A\u0438\n \\t - \u0437\u043D\u0430\u043A\u0020\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438";
pFinished = "\u041F\u043E\u0438\u0441\u043A\u0020\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u002E";
pCountFiles = "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445\u0020\u0444\u0430\u0439\u043B\u043E\u0432\u003A\u0020";
pCountChanges = "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0020\u0437\u0430\u043C\u0435\u043D\u003A\u0020";
}
else
{
pLowJscript = "JScript version is less than 5.5.";
pWhat = "What:";
pWith = "With:";
pMatchCase = "Case sensitive";
pMultiLine = "Multiline";
pEscapeSeq = "Esc-sequences";
pFunction = "Replace with function";
pDirection = "Direction";
pForward = "Down";
pBackward = "Up";
pBeginning = "Beginning";
pInSel = "In selection";
pAllFiles = "All files";
pFindNext = "&Find next";
pReplace = "&Replace";
pReplaceAll = "Replace &All";
pCancel = "Cancel";
pSyntaxError = "Syntax error:\n \\\\ - backslash\n \\r - line feed\n \\t - tabulation";
pFinished = "Search finished.";
pCountFiles = "Changed files: ";
pCountChanges = "Count of changes: ";
}
In this way the js might be a little quicker and smaller. And the LangString might be more easy to be translated.
Right?
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Infocatcher
Наверное уже достал, но ещё чуток по _punctuationFixer.js
Начинаешь плотно использовать и замечаешь такие мелочи...
По кавычкам
исходно:результат:
правда не знаю, можно ли это поправить?..
UPDATED: И ещё одна фича.
Убирается сдвиг впереди
исходно:результат:
т.е. съедает пробелы/табы в начале строки.
Наверное уже достал, но ещё чуток по _punctuationFixer.js

По кавычкам
исходно:
Code: Select all
Вспомнила как называется: "Мужчина и Женщина. Как нам понять друг друга?" Книга просто супер!
Code: Select all
Вспомнила как называется: «Мужчина и Женщина. Как нам понять друг друга? «Книга просто супер!
UPDATED: И ещё одна фича.
Убирается сдвиг впереди
исходно:
Code: Select all
1. Общий текст:
- пункт 1;
- пункт n.
Code: Select all
1. Общий текст:
- пункт 1;
- пункт n.