Page 90 of 96

Posted: Sun Mar 23, 2014 5:01 pm
by KDJ
Instructor wrote:KDJ
User requesting replace in files. Maybe add replace field and replace button in FindFiles.js script?
I could try to do it. According to the following algorithm:

Code: Select all

nDetectFile = AkelPad.SendMessage(hMainWnd, 1177 /*AKD_DETECTFILEW*/, 0, lpDETECTFILE);
if ((nDetectFile == 0 /*EDT_SUCCESS*/) || (nDetectFile == -4 /*EDT_BINARY*/))
{
  nCodePage = AkelPad.MemRead(lpDETECTFILE...);
  bBOM      = AkelPad.MemRead(lpDETECTFILE...);
  sContent  = AkelPad.ReadFile(sFileName, 0, nCodePage, bBOM);
  if (oRegExp.test(sContent)
  {
    sContent = sContent.replace(oRegExp...);
    AkelPad.WriteFile(sFileName, sContent, nCodePage, bBOM);
  }
}
I miss only the method AkelPad.WriteFile(). :(

Posted: Sun Mar 23, 2014 8:38 pm
by KDJ
AkelPadMethodsView.js
Changed: Find ignore case by default.
Added: parameter "Find - match case". To set it, press "Menu" button (F1).

Instructor
I can't login to: http://akelpad.sourceforge.net/files/pl ... pload.html
Is the password has been changed?

Posted: Mon Mar 24, 2014 6:29 pm
by KDJ
AkelPadDocsView.js
Added: parameter "Find - match case" in menu.

Posted: Tue Mar 25, 2014 11:46 am
by Instructor
Now should work. Permission restrictions.

Posted: Tue Mar 25, 2014 5:17 pm
by Instructor
KDJ wrote:I miss only the method AkelPad.WriteFile().
4.8.8 Dev and Scripts v14.4

Posted: Thu Mar 27, 2014 8:05 am
by yozhic
Отчёт о подрывных действиях пользователя.
AkelPad 4.8.7, Scripts.dll 14.3, Restart.js 0.1.1

Code: Select all

  -"Restart AkelPad session" Call("Scripts::Main", 1, "Restart.js", '-nirCmd="%a\..\..\utils\ConsoleX\nircmd.exe" -session="OnExit" -sessionAutoload=false')
Если во время рестарта открыты диалог Replace и диалог SearchReplace.js, AkelPad падает... Добавлено: при одном открытом SearchReplace.js тоже падает.

Problem signature:
Problem Event Name: APPCRASH
Application Name: AkelPad.exe
Application Version: 4.8.7.0
Application Timestamp: 52ee3cb1
Fault Module Name: Scripts.dll
Fault Module Version: 14.3.0.0
Fault Module Timestamp: 532de848
Exception Code: c0000005
Exception Offset: 000011b4
OS Version: 6.3.9600.2.0.0.256.4
Locale ID: 1033
Additional Information 1: 5861
Additional Information 2: 5861822e1919d7c014bbb064c64908b2
Additional Information 3: 2af1
Additional Information 4: 2af1ed6f1bdf9836b314522e3dfa0012

Posted: Fri Mar 28, 2014 7:49 pm
by Instructor
Infocatcher
У меня, если строки не заданы в указанном порядке, то перезапуск происходит в 2-х случаях из 3-х. Для еще большей надежности можно и небольшой Sleep поставить, но у меня и так работает.
restart.js wrote:AkelPad.Exec(cmd, akelDir);
AkelPad.Command(4109); // Exit
yozhic
Исправлено. Будет доступно после релиза AkelPad 4.8.8.

Posted: Fri Mar 28, 2014 8:37 pm
by Infocatcher
Instructor wrote:Infocatcher
У меня, если строки не заданы в указанном порядке, то перезапуск происходит в 2-х случаях из 3-х. Для еще большей надежности можно и небольшой Sleep поставить, но у меня и так работает.
restart.js wrote:AkelPad.Exec(cmd, akelDir);
AkelPad.Command(4109); // Exit
А у меня – наоборот. Если передвинуть выход в конец, то периодически падает (но и перезапускается).
Причем я сделал

Code: Select all

AkelPad.Exec(cmd, akelDir);
WScript.Sleep(1000);
AkelPad.Command(4109); // Exit
И падает еще до выхода.

P.S. Отправил папку с AkelPad'ом.

Posted: Sat Mar 29, 2014 11:12 am
by Infocatcher
С разрабатываемыми версиями AkelPad'а и Scripts, вроде, все нормально, обновляю:
restart.js
Reorder commands to prevent crashes

Posted: Sat Mar 29, 2014 10:49 pm
by KDJ
Instructor wrote:
KDJ wrote:I miss only the method AkelPad.WriteFile().
4.8.8 Dev and Scripts v14.4
It seems to me that AkelPad.WriteFile() does not work for NTFS streams.

Posted: Sun Mar 30, 2014 5:29 am
by Instructor
KDJ
Not reproduced. Next code works correctly:

Code: Select all

AkelPad.WriteFile("C:\\File.txt:123", "Text", -1, 65001, true);
WScript.Echo(AkelPad.ReadFile("C:\\File.txt:123"));
AkelPad.OpenFile("C:\\File.txt:123");

Posted: Sun Mar 30, 2014 12:07 pm
by KDJ
Instructor
I think I know where the error is. After writing in the file (main stream), disappearing alternate streams. Test code:

Code: Select all

AkelPad.WriteFile("C:\\File.txt", "File text", -1, 65001, true);
WScript.Echo(AkelPad.ReadFile("C:\\File.txt"));

AkelPad.WriteFile("C:\\File.txt:Stream", "Stream text", -1, 65001, true);
WScript.Echo(AkelPad.ReadFile("C:\\File.txt:Stream"));

AkelPad.WriteFile("C:\\File.txt", "File text changed", -1, 65001, true);
WScript.Echo(AkelPad.ReadFile("C:\\File.txt"));
WScript.Echo(AkelPad.ReadFile("C:\\File.txt:Stream")); //Stream not exists
Maybe you should change dwCreationDisposition parameter in CreateFile() function, instead of CREATE_ALWAYS:
if file/stream exists
dwCreationDisposition = TRUNCATE_EXISTING
else
dwCreationDisposition = CREATE_NEW

Posted: Sun Mar 30, 2014 5:08 pm
by Infocatcher

Posted: Wed Apr 02, 2014 7:46 am
by Infocatcher
Что-то у меня на разрабатываемых версиях стало падать при использовании winMergeTabs.js: вкладка выбирается без проблем, а вот где-то в районе запуска внешней программы периодически падает (хотя чаще падает, чем нет, подробностей почему-то в логи не пишет).
AkelPad.exe v.4.8.8dev (388 096 байт, CRC32: 2dfdd955, MD5: 348c5d66dc579882a20bc2662b7610a0)
Scripts.dll v.14.5 (77 312 байт, CRC32: cab1f40b, MD5: 369189408be72be5306211d08d63ed8a)

Хм, хотя вот и с tileTabs.js тоже падает.

Upd:
Вот такое помогает:

Code: Select all

	if(uMsg == 0x416 /*AKDN_FRAME_ACTIVATE*/) {
		if(lParam != lpFrame) {
			lpFrame2 = lParam;
			WScript.Sleep(50); //!
			oSys.Call("user32::PostQuitMessage", 0); // Exit message loop
		}
	}

Posted: Wed Apr 02, 2014 12:45 pm
by DV
Задачка такого плана:
Есть некое консольное приложение, выводящее в результате своей работы в консоль путь к некоторому файлу.
Хочется вот чего: из работающего AkelPad запустить это приложение по-тихому, вычитать возвращаемое имя файла и открыть этот файл в AkelPad.
С помощью скрипта я запросто могу запустить это консольное приложение, даже могу вывести возвращаемое имя файла в Log::Output. Но как автоматизировать получение имени файла из вывода (output) консольного приложения?