Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

SortList.js

Post by sexy96 »

zamiana 1 na -1 w kodzie zmieniła działanie skryptu SortList.js, (z konwertowania linii poziomej na pionową),
ale nie bierze pod uwagę polskich znaków.
To samo albo i lepiej (prawidłowo sortuje polskie znaki) można wykonać skryptem SortWords.js.

To już wolę ten stary skrypt SortList.js ponieważ konwertował linie poziomej na pionową
i zastępował opcję Split Lines(Rozłącz linie, Podziel wiersze).
np.
przed: Ę Ą Z A

i po:

Ę

Ą

Z

A

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: SortList.js

Post by DV »

Merci de votre message, il a été très utile.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Kley
Можно пример применения SwapText.js описать? А то напоминает Ctrl+C/Ctrl+V.

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

Post by Kley »

Lenchik

Поменять местами две функции в скрипте, расположенные в разных концах текста.
Ctrl+C/Ctrl+V:
1. выделяем первую функцию
2. Ctrl+C (Ctrl+X, но потом дольше искать)
3. переходим ко второй функции
4. рядом вставляем первую (Ctrl+V)
5. выделяем вторую
6. Ctrl+X
7. переходим к первой функции (или туда, где она была)
8. выделяем первую функцию
9. Ctrl+V

SwapText.js:
1. выделяем первую функцию
2. клик кнопку в тулбаре
3. переходим ко второй функции
4. выделяем вторую
5. клик кнопку в тулбаре

Не все ставят плагины и по пометкам не поскакать и CodeFold не поможет если первую функцию вырезали в буфер.
FeyFre wrote:Ах да, вон KDJ клепает скрипты как на конвейере, хотя фич-реквестов на них не было(а значит они так или иначе сначала нужны были только ему).
http://akelpad.sourceforge.net/forum/vi ... 0556#10556

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

Post by KDJ »

HtmlView.js
Added:
- htmlFile parameter,
- possibility to run script from command line (as ActiveX).

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

KDJ
Can you add *.xhtml for HtmlView.js?

Code: Select all

  else if ((hMainWnd && (AkelPad.GetLangId(0 /*LANGID_FULL*/) == 1049)) || ((! hMainWnd) && (oSys.Call("Kernel32::GetUserDefaultLangID") == 1049))) //Russian
  {
    sTxtDlgTitle = "Просмотр HTML";
    sTxtDocMod   = "Документ был изменен. Хотите сохранить перед просмотром?";
    sTxtOnlyHtml = "Только файлы *.html и *.htm.";
    sTxtNoFile   = "Этот файл не существует!";
  }

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Подскажите, пожалуйста: вызываю OpenSaveMask.js из

Code: Select all

//OpenCurrentMask.js
//
// Version: 2015-09-22
//
//   -"открыть все файлы текущего типа" Call("Scripts::Main", 1, "OpenCurrentMask.js", `-File="%f" -SubDir=false`)
//       -file="%f"    - полное имя текущего файла, обязательный;
//       -SubDir=      - необязательный, тип поиска файлов:
//             -SubDir=false - открыть файлы только в текущем каталоге;
//             -SubDir=true  - рекурсивно в текущем каталоге.

var hMainWnd    = AkelPad.GetMainWnd();
var hWndEditCur = AkelPad.GetEditWnd();
var pFile       = AkelPad.GetArgValue("File", "");
var bSubDir     = AkelPad.GetArgValue("SubDir", false);
var pPath       = AkelPad.GetFilePath(pFile, 1 /*CPF_DIR*/);
var pExt        = AkelPad.GetFilePath(pFile, 4 /*CPF_FILEEXT*/);
var nCodePage   = AkelPad.GetEditCodePage(hWndEditCur);
var bBOM        = AkelPad.GetEditBOM(hWndEditCur);

AkelPad.ScriptNoMutex();
AkelPad.Call("Scripts::Main", 2, "OpenSaveMask.js", "-OpenMask=\"" + pPath + "\\*." + pExt + "\" -SubDir=" + bSubDir + "\"");
AkelPad.OpenFile(pFile, 0x100 /*OD_REOPEN*/, nCodePage, bBOM);
и получаю

Code: Select all

Скрипт:	\AkelFiles\Plugs\Scripts\OpenSaveMask.js
Строка:	42
Символ:	1
Ошибка:	Незавершенная строковая константа
Код:	800A03F7
Источник:	Ошибка выполнения Microsoft JScript
, что я делаю не так?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off
Для проверки можно использовать Echo:
WScript.Echo("-OpenMask=\"" + pPath + "\\*." + pExt + "\" -SubDir=" + bSubDir + "\"");
AkelPad.Call("Scripts::Main", 2, "OpenSaveMask.js", "-OpenMask=\"" + pPath + "\\*." + pExt + "\" -SubDir=" + bSubDir + "\"");
AkelPad.Call("Scripts::Main", 2, "OpenSaveMask.js", "-OpenMask=\"" + pPath + "\\*." + pExt + "\" -SubDir=\"" + bSubDir + "\"");

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Спасибо, что-то в последнее время часто косячу с кавычками.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

KDJ

Code: Select all

  var sTxtCaption  = 'Замена текста в выделенном блоке';
  var sTxtReadOnly = 'Включен режим "Только для чтения".';
  var sTxtNoColSel = 'Отсутствует блочное выделение.';
  var sTxtLabel    = 'Введите текст для замены:';


Code: Select all

    sTxtCaption   = "Информация о файле";
    sTxtWait      = "Пожалуйста, подождите...";
    sTxtNoFile    = "Отсутствует имя, файл не сохранён";
    sTxtStatsTxt  = "Статистика по тексту";
    sTxtEntire    = " - полный текст";
    sTxtSelect    = " - выделенный текст";
    sTxtDetails   = "Детально";
    sTxtCount     = "Кол-во";
    sTxtWord      = "Слово";
    sTxtChar      = "Символ";
    sTxtCode      = "(Код)";
    sTxtLineLen   = "Длина строки";
    sTxtLineNum   = "[Номера строк]";
    sTxtFile      = "Файл, полное имя:";
    sTxtSize      = "Размер [в Байтах]:";
    sTxtCreated   = "Дата создания:";
    sTxtModified  = "Дата модификации:";
    sTxtChars     = "Символы";
    sTxtLatin     = "Латинские буквы:";
    sTxtDigits    = "Цифры:";
    sTxtUnders    = "Символы подчёркивания:";
    sTxtWhites    = "Пробельные символы:";
    sTxtSpaces    = "Пробел:";
    sTxtHTabs     = "Табуляция (09h):";
    sTxtVTabs     = "Вертикальная табуляция (0Bh):";
    sTxtFF        = "Перевод страницы (0Ch):";
    sTxtCR        = "Возврат каретки (0Dh):";
    sTxtLF        = "Перевод строки (0Ah):";
    sTxtOther     = "Другие:";
    sTxtWords     = "Слова";
    sTxtText      = "Текст:";
    sTxtInt       = "Целые числа:";
    sTxtDec       = "Десятичные:";
    sTxtHex       = "Hex (0x...):";
    sTxtLines     = "Строки";
    sTxtEmptyL    = "Пустые строки:";
    sTxtEnEmptyL  = "Абсолютно пустые:";
    sTxtWhiteL    = "Только из пробельных символов:";
    sTxtWhiteEnd  = "Заканчивающиеся проб. символами:";
    sTxtBadNLF    = "Неверный формат новой строки:";
    sTxtMinLenL   = "Min. длина строки:";
    sTxtMaxLenL   = "Max. длина строки:";
    sTxtStream    = "(поток NTFS)";
    sTxtStreams   = "Потоки NTFS:";
    sTxtStats     = "Статистика";
    sTxtAll       = "Вс&я";
    sTxtAllDet    = "Дет&альная";
    sTxtOutput    = "Вывод";
    sTxtNewWnd    = "Новое окно";
    sTxtNewTab    = "Новая вкладка (MDI)";
    sTxtLogWnd    = "Панель вывода";
    sTxtFont      = "Шрифт";
    sTxtMonoFonts = "Моноширинный шрифт";
    sTxtAllFonts  = "Все шрифты";
    sTxtOK        = "OK";
    sTxtCancel    = "Отмена";

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

Post by KDJ »

Skif_off wrote:KDJ
Can you add *.xhtml for HtmlView.js?

Code: Select all

  else if ((hMainWnd && (AkelPad.GetLangId(0 /*LANGID_FULL*/) == 1049)) || ((! hMainWnd) && (oSys.Call("Kernel32::GetUserDefaultLangID") == 1049))) //Russian
  {
    sTxtDlgTitle = "Просмотр HTML";
    sTxtDocMod   = "Документ был изменен. Хотите сохранить перед просмотром?";
    sTxtOnlyHtml = "Только файлы *.html и *.htm.";
    sTxtNoFile   = "Этот файл не существует!";
  }
In this version you can try to open any file, also url: HtmlView.js
Thanks for the translation.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

KDJ
Thanks and:

Code: Select all

sTxtFileUrl  = "Имя файла или url:";
2All
Вызывать из скрипта OpenSaveMask.js неудобно по ряду причин, сделал скрипт, отчасти похожий на OpenSaveMask.js:

Code: Select all

-"Open" Call("Scripts::Main", 1, "OpenSaveMask.js", `-OpenMask="C:\MyFolder\*.txt" -SubDir=true`)
только в качестве каталога - каталог текущего файла, маска - расширение текущего файла, при этом при открытии файлов текущий файл игнорируется, а после осуществляется переход к нему с восстановлением позиции курсора (AkelPad.GetSelEnd() - или позиция конца выделения, если было) и прокрутки. Если файл модифицирован - вылезет стандартное окно с предложением сохранить, достаточно нажать Отмена). Пригодится ли публично?


(используются функции из SearchReplace.js (SaveLineScroll() и RestoreLineScroll()) и OpenSaveMask.js (модифицированные/сокращённые Locate(), LocateCallback() и DoFile()), не стал добавлять ключи для кодировки и BOM, как в OpenSaveMask.js, для метода открытия используются флаги OD_ADT_DETECT_CODEPAGE и OD_ADT_DETECT_BOM)
и, возможно, что-то подобное уже есть в планах у Instructor.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ
When closing CalculatorBin.js, CalculatorJS.js as ActiveX, the error message appears.

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

Post by KDJ »

CalculatorBin.js
CalculatorJS.js
Fixed: run from command line as ActiveX.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ
Now is OK, thanks.
Locked