[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Andrey_A, simup, ХарВик, chip642  
Форум » • AkelPad • » ТЕСТИРОВАНИЕ СКРИПТОВ для AkelPad » DelEmptyLines.js - Удаляет пустые строки (Строковые операции)
DelEmptyLines.js - Удаляет пустые строки
Andrey_AДата: Воскресенье, 25.03.2012, 11:42 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7163
Награды: 139
Репутация: 124
Аверин Андрей
Удаляет пустые строки
Используется selCompleteLine.js - Общие функции для работы с выделенным текстом

Доступно только для пользователей


 
Alex5359Дата: Пятница, 26.10.2018, 15:35 | Сообщение № 2
Рядовой

На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
Награды: 0
Репутация: 0
Здравствуйте
Я в скриптах не понимаю
а можно сделать чтобы удаляло только 10,15 и 23 строки в текстовых документах открытых в Akel Pad
 
ZmyДата: Вторник, 30.10.2018, 13:10 | Сообщение № 3
Майор

На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
Награды: 1
Репутация: 0
Alex5359, могу написать скрипт. Как надо, чтобы номера строк передавались параметром?
 
Alex5359Дата: Вторник, 30.10.2018, 16:54 | Сообщение № 4
Рядовой

На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
Награды: 0
Репутация: 0
Zmy
Привет Мне просто нужно чтобы он удалял строками без поиска значений. 10,11,12 или в разнобой.
Можно так скрипт написать. Или только по поиску значений
 
ZmyДата: Вторник, 30.10.2018, 17:46 | Сообщение № 5
Майор

На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
Награды: 1
Репутация: 0
Ну смотрите, я могу сделать диалог, и в нём надо будет вводить номера строк.

Можно и без диалога, так будет молча удалять.

Но с диалогом удобнее, так как, вдруг, понадобится удалять другие строки.
Там будут введены параметры по-умолчанию, и надо просто нажать "ОК".

Теперь ещё пару вопросов.

1) Удалять только в текущей вкладке, или во всех открытых?
2) Можно сразу и сохранить все, и закрыть все.
 
Alex5359Дата: Среда, 31.10.2018, 16:58 | Сообщение № 6
Рядовой

На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
Награды: 0
Репутация: 0
Zmy
диалог получиться по дольше и я наверно задолбаюсь вводить номера, я открываю файлы по отдельности в тотал коммандер на F4 нажимаю

А в случае без диалога я смогу сам поправить скрипт поменять номера строк которые мне нужно будет удалить
без диалога вариант по быстрее получиться

насчёт вкладок я открываю каждый документ по отдельности наверно не надо это
сохранить и закрыть команды можно добавить с ними будет быстрее
 
ZmyДата: Среда, 31.10.2018, 19:12 | Сообщение № 7
Майор

На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
Награды: 1
Репутация: 0
Вы же умеете вызывать в AkelPad скрипты?
Вешаете его на горячую клавишу, и/или в контекстное/главное меню, или на тулбар.

Сохраняте его с таким именем. DelNumLines.js.

Код

//   DelNumLines.js
//  Если вызывать без параметров, то появится диалог,
//  где набо будет ввести номера строк, разделённых точкой с запятой.
//  Т.е, вызванных так.
//    Call("Scripts::Main", 1, "DelNumLines.js")
//
//  Если существуют аргументы, то соответственно, номера должны быть указаны.
//    Call("Scripts::Main", 1, "DelNumLines.js", "10;15;23")
//    Call("Scripts::Main", 1, "DelNumLines.js", "2;5;56")
//    Call("Scripts::Main", 4, "DelNumLines.js", "243;359;487;532")
//
//  Для работы с горячими клавишами надо использовать плагин Hotkeys.
//  В меню и тулбарах вызываете этот скрипт с разными аргументами.
//  У вас может быть целое подменю для работы с этим скриптом.
//   
//  Если в конце параметра будет стоять "cl", то тогда файл сохранится и закроется.
//  Call("Scripts::Main", 1, "DelNumLines.js", "2;5;56cl")

_function()
function _function(){if (AkelPad.GetMainWnd()){var r="",j,i,h=AkelPad.GetArgLine();
if (!h){var b,u={},z=new ActiveXObject('ScriptControl'),v=[];u.Function=function(f){return function()
{return u.Function.eval.call(this,f,arguments);};};u.Function.eval=function(f){h=Array.prototype.slice.call(arguments[1]);
for (i=0;i<h.length;i++){if (typeof h[i]!='string'){continue;}h[i]='"'+h[i].replace(/"/g,'"+Chr(34)+"')+'"';}
z.Language='VBScript';return z.eval(f+'('+h.join(', ')+')');};b=u.Function('InputBox');
h=b("Examples:          10;15;23",'Input Numbers Lines',"2;4;6");if (!h){WScript.Quit();}
u=h.split(";");for (i=0;i<u.length;++i){z=u[i].replace(/^\s*/g,"").replace(/\s*$/g,"");if (z.length>0){v.push(z);}};
}else{var v=h.split(";");};var u=[];for (i=0;i<v.length;++i){z=v[i].replace(/^\s*/g,"").replace(/\s*$/g,"");
if (z.length>0){u.push(parseInt(z,10));}};z=AkelPad.GetTextRange(0,-1).split("\r");v=0;for (i=0;i<u.length;++i){for (j=0;j<z.length;++j){
if (u[i]>z.length){WScript.Echo("Одно из введённых чисел больше, чем количество строк."+"\n\n\n"+"Число\t"+
u[i]+"\n\n\nСтрок\t"+z.length+"\n\n\n"+AkelPad.GetEditFile(0)+"  \n");z="";WScript.Quit();}}};for (i=0;i<u.length;++i){for (j=0;j<z.length;++j)
{if (u[i]>z.length){v=1;break;};if (u[i]==j+1){i+=1;continue;};if (i<=u.length){r+=z[j]+"\n";}else{r+=z[j]};}}
if (v==0){AkelPad.Command(0x103D);AkelPad.ReplaceSel(r);z="";r="";if (h.toLowerCase().lastIndexOf("cl")>0)
{AkelPad.Command(0x1009);WScript.sleep(200);AkelPad.Command(0x10E4);};WScript.Quit();};}
}



Обновите скрипт. Теперь он будет работать, как с аргументами, так и без.

Кидаете его в папку "Папка Акелпада\AkelFiles\Plugs\Scripts\" .

Я пока сделал без сохранения и закрытия. Потренируйтесь сначала, если всё будет нормально,
то я добавлю эти функции.
Ведь его нужно протестировать прежде, чем работать с важными документами.
Ситуации бывают разные, вдруг, на каком-то символе будет нежелетельный результат.
И тогда важные документы могут быть утеряны навсегда.
И никакая в мире программа для восстановления файлов не поможет.
Ведь на те же самые сектора будет записан новый байтовый стрим.
.
Прикрепления: DelNumLines.zip (1.4 Kb)


Сообщение отредактировал Zmy - Суббота, 03.11.2018, 04:56
 
Alex5359Дата: Пятница, 02.11.2018, 07:52 | Сообщение № 8
Рядовой

На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
Награды: 0
Репутация: 0
Zmy, Попробовал вчера и несколько раз вроде всё правильно делал скрипт запускаю и вылазит вот эта ошибка.
Прикрепления: 9298128.jpg (11.6 Kb)
 
ZmyДата: Пятница, 02.11.2018, 09:23 | Сообщение № 9
Майор

На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
Награды: 1
Репутация: 0
Это не ошибка, а сообщение, что не были переданы аргументы. Это старая версия.

Перекачайте скрипт заново.


Сообщение отредактировал Zmy - Пятница, 02.11.2018, 10:43
 
Alex5359Дата: Пятница, 02.11.2018, 13:20 | Сообщение № 10
Рядовой

На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
Награды: 0
Репутация: 0
Zmy, Здорово работает теперь. А если сделать его чтобы он не спрашивал какие строки надо удалить мне проще будет ему поправить в скрипте параметр: Input Numbers Lines',"14;15;16" я попробовал получается единственное что в скрипте мне понятно. И ещё не надо будет нажимать тогда окей. Плюсом добавить сохранение и закрытие и будет тогда максимальное быстродействие.
 
Alex5359Дата: Пятница, 02.11.2018, 15:49 | Сообщение № 11
Рядовой

На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
Награды: 0
Репутация: 0
Zmy, Он всё правильно удаляет это я не так делаю запуск с параметрами. Можете написать поподробней как именно запустить.
 
ZmyДата: Суббота, 03.11.2018, 04:53 | Сообщение № 12
Майор

На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
Награды: 1
Репутация: 0
Перекачайте скрипт. Теперь, если в конце будут параметров будет стоять "cl",
то тогда файл сохранится и закроется.

Код
Call("Scripts::Main", 4, "DelNumLines.js", "2;6;7;65cl")


Сообщение отредактировал Zmy - Суббота, 03.11.2018, 04:58
 
bra2xaДата: Суббота, 03.11.2018, 13:24 | Сообщение № 13
Полковник

На сайте с: 01.01.2017
Город: Киев
Сообщений: 178
Награды: 6
Репутация: 8
Zmy, Alex5359 Хаюшки!
Увидел вашу переписку - решил упасть на фост. )

Мастер, могу ли я тоже попросить Вас написать скромный но понятный скрипт?
Скрипт, который удалял(добавлял) бы строки на выбор - каждую вторую (третью, 4, 5, 6, и т.д.)
Или уже есть подобный? Или это уже реализовано где-то в Akepad(Notepad++)? Подскажите.



Сообщение отредактировал bra2xa - Суббота, 03.11.2018, 17:09
 
bra2xaДата: Вторник, 06.11.2018, 11:27 | Сообщение № 14
Полковник

На сайте с: 01.01.2017
Город: Киев
Сообщений: 178
Награды: 6
Репутация: 8
А вот здесь более подробно написал
http://tc-image.3dn.ru/forum/9-171-20990-16-1541163872
Скрипт Удаляет\добавляет на выбор - каждую вторую строку или третью, четвёртую, и т.д.
Ещё можно дополнительно:
a) Галку для удаления пробелов в конце строк.
b) Удаление параметров после определённого окончания в строке (например '.html' удаляет всё, что после синего: ~.html?url= )
с) Удаление Скрытых или специальных символов. Например CR, LF, TAB, и т.п.
Или проще Дополнения сделать отдельными скриптами, с возможностью встроить в кнопки одним кликом.


Сообщение отредактировал bra2xa - Вторник, 06.11.2018, 12:13
 
bra2xaДата: Вторник, 06.11.2018, 12:15 | Сообщение № 15
Полковник

На сайте с: 01.01.2017
Город: Киев
Сообщений: 178
Награды: 6
Репутация: 8
Цитата Zmy ()
в кнопки Total Commander или другие места файловой системы их не встроишь.

Zmy, я имею ввиду кнопки на панели инструментов AkelPade.
Но не принципиально, можно и в обычное меню или в контекст выделенного элемента - выбрать наиболее удобный из возможных реализовать вариант.

Согласен, задачки разные, потому и написал:
"проще Дополнения сделать отдельными скриптами, с возможностью встроить в кнопки одним кликом."


Сообщение отредактировал bra2xa - Вторник, 06.11.2018, 12:18
 
Форум » • AkelPad • » ТЕСТИРОВАНИЕ СКРИПТОВ для AkelPad » DelEmptyLines.js - Удаляет пустые строки (Строковые операции)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Интеллектуальные права и отказ от ответственности