Page 1 of 1

Вставка в множества файлов в строку названия файла

Posted: Sun Sep 04, 2011 7:57 am
by webkontrast
Здравствуйте. Не так давно открыл для себя хороший редактор AkelPad Много раз спасал, однако тут задачка стала:
Вообщем есть более 400 файлов в расширении php типа 1alm.php 2alm.php
В тесте нужно в определенную строку сделать так, что бы вставлялось название этого файла, но без расширения(впринципе и с расширением можно, потом его просто удалить массово)

Подскажите как. а то уже глаза болят
Спасибо

Posted: Sun Sep 04, 2011 9:38 am
by Instructor
Как шаблон скрипта можно взять DelTrailSpacesAll.js и вместо

Code: Select all

AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, 4174 /*IDM_EDIT_DELETE_TRAILING_WHITESPACES*/, 0);
написать код получения имени текущего файла и его вставку в необходимое место.

Posted: Sun Sep 04, 2011 10:23 am
by webkontrast
Instructor wrote:Как шаблон скрипта можно взять DelTrailSpacesAll.js и вместо

Code: Select all

AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, 4174 /*IDM_EDIT_DELETE_TRAILING_WHITESPACES*/, 0);
написать код получения имени текущего файла и его вставку в необходимое место.
Для меня это темный лес. Был бы признателен за помощь!

Posted: Sun Sep 04, 2011 11:24 am
by webkontrast
Instructor
Напишите пожалуйства как реализовать

Posted: Sun Sep 04, 2011 11:50 am
by Instructor
webkontrast
Используем AkelPad.GetEditFile, AkelPad.SetSel, AkelPad.ReplaceSel.

Posted: Sun Sep 04, 2011 1:15 pm
by KDJ
webkontrast
The following code save in a file named eg. InsertFileBaseNameAll.js

Code: Select all

//based on DelTrailSpacesAll.js by Instructor
//http://akelpad.sourceforge.net/forum/viewtopic.php?p=3370#p3370

var hMainWnd=AkelPad.GetMainWnd();
var hWndFrameInit;
var sFile;

if (hMainWnd)
{
  //Initial MDI frame
  hWndFrameInit=AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0);

  for (;;)
  {
    sFile = AkelPad.GetEditFile(0);
    sFile = sFile.substring(sFile.lastIndexOf("\\") + 1).replace(/\.[^.]*$/, "");
    AkelPad.ReplaceSel(sFile, 1);

    //Next MDI frame
    AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, 4316 /*IDM_WINDOW_FRAMENEXT*/, 0);
    if (hWndFrameInit == AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0))
      break;
  }
}
Put this script in a directory ...\AkelPad\AkelFiles\Plugs\Scripts\
Enable Script plugin, open your files and run this script.