DelEmptyLines.js - Удаляет пустые строки
|
|
Andrey_A | Дата: Воскресенье, 25.03.2012, 11:42 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Удаляет пустые строки Используется selCompleteLine.js - Общие функции для работы с выделенным текстом
Доступно только для пользователей
|
|
| |
Alex5359 | Дата: Пятница, 26.10.2018, 15:35 | Сообщение № 2 |
Рядовой
На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
|
Здравствуйте Я в скриптах не понимаю а можно сделать чтобы удаляло только 10,15 и 23 строки в текстовых документах открытых в Akel Pad
|
|
| |
Zmy | Дата: Вторник, 30.10.2018, 13:10 | Сообщение № 3 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Alex5359, могу написать скрипт. Как надо, чтобы номера строк передавались параметром?
|
|
| |
Alex5359 | Дата: Вторник, 30.10.2018, 16:54 | Сообщение № 4 |
Рядовой
На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
|
Zmy Привет Мне просто нужно чтобы он удалял строками без поиска значений. 10,11,12 или в разнобой. Можно так скрипт написать. Или только по поиску значений
|
|
| |
Zmy | Дата: Вторник, 30.10.2018, 17:46 | Сообщение № 5 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Ну смотрите, я могу сделать диалог, и в нём надо будет вводить номера строк.
Можно и без диалога, так будет молча удалять.
Но с диалогом удобнее, так как, вдруг, понадобится удалять другие строки. Там будут введены параметры по-умолчанию, и надо просто нажать "ОК".
Теперь ещё пару вопросов.
1) Удалять только в текущей вкладке, или во всех открытых? 2) Можно сразу и сохранить все, и закрыть все.
|
|
| |
Alex5359 | Дата: Среда, 31.10.2018, 16:58 | Сообщение № 6 |
Рядовой
На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
|
Zmy диалог получиться по дольше и я наверно задолбаюсь вводить номера, я открываю файлы по отдельности в тотал коммандер на F4 нажимаю
А в случае без диалога я смогу сам поправить скрипт поменять номера строк которые мне нужно будет удалить без диалога вариант по быстрее получиться
насчёт вкладок я открываю каждый документ по отдельности наверно не надо это сохранить и закрыть команды можно добавить с ними будет быстрее
|
|
| |
Zmy | Дата: Среда, 31.10.2018, 19:12 | Сообщение № 7 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Вы же умеете вызывать в 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\" .
Я пока сделал без сохранения и закрытия. Потренируйтесь сначала, если всё будет нормально, то я добавлю эти функции. Ведь его нужно протестировать прежде, чем работать с важными документами. Ситуации бывают разные, вдруг, на каком-то символе будет нежелетельный результат. И тогда важные документы могут быть утеряны навсегда. И никакая в мире программа для восстановления файлов не поможет. Ведь на те же самые сектора будет записан новый байтовый стрим. .
Сообщение отредактировал Zmy - Суббота, 03.11.2018, 04:56 |
|
| |
Alex5359 | Дата: Пятница, 02.11.2018, 07:52 | Сообщение № 8 |
Рядовой
На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
|
Zmy, Попробовал вчера и несколько раз вроде всё правильно делал скрипт запускаю и вылазит вот эта ошибка.
|
|
| |
Zmy | Дата: Пятница, 02.11.2018, 09:23 | Сообщение № 9 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Это не ошибка, а сообщение, что не были переданы аргументы. Это старая версия.
Перекачайте скрипт заново.
Сообщение отредактировал Zmy - Пятница, 02.11.2018, 10:43 |
|
| |
Alex5359 | Дата: Пятница, 02.11.2018, 13:20 | Сообщение № 10 |
Рядовой
На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
|
Zmy, Здорово работает теперь. А если сделать его чтобы он не спрашивал какие строки надо удалить мне проще будет ему поправить в скрипте параметр: Input Numbers Lines',"14;15;16" я попробовал получается единственное что в скрипте мне понятно. И ещё не надо будет нажимать тогда окей. Плюсом добавить сохранение и закрытие и будет тогда максимальное быстродействие.
|
|
| |
Alex5359 | Дата: Пятница, 02.11.2018, 15:49 | Сообщение № 11 |
Рядовой
На сайте с: 26.10.2018
Город: Самара
Сообщений: 9
|
Zmy, Он всё правильно удаляет это я не так делаю запуск с параметрами. Можете написать поподробней как именно запустить.
|
|
| |
Zmy | Дата: Суббота, 03.11.2018, 04:53 | Сообщение № 12 |
Майор
На сайте с: 19.04.2015
Город: Краснодар
Сообщений: 81
|
Перекачайте скрипт. Теперь, если в конце будут параметров будет стоять "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
|
Zmy, Alex5359 Хаюшки! Увидел вашу переписку - решил упасть на фост. )
Мастер, могу ли я тоже попросить Вас написать скромный но понятный скрипт? Скрипт, который удалял(добавлял) бы строки на выбор - каждую вторую (третью, 4, 5, 6, и т.д.) Или уже есть подобный? Или это уже реализовано где-то в Akepad(Notepad++)? Подскажите.
Сообщение отредактировал bra2xa - Суббота, 03.11.2018, 17:09 |
|
| |
bra2xa | Дата: Вторник, 06.11.2018, 11:27 | Сообщение № 14 |
Полковник
На сайте с: 01.01.2017
Город: Киев
Сообщений: 178
|
А вот здесь более подробно написал 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
|
Цитата Zmy ( ) в кнопки Total Commander или другие места файловой системы их не встроишь. Zmy, я имею ввиду кнопки на панели инструментов AkelPade. Но не принципиально, можно и в обычное меню или в контекст выделенного элемента - выбрать наиболее удобный из возможных реализовать вариант.
Согласен, задачки разные, потому и написал: "проще Дополнения сделать отдельными скриптами, с возможностью встроить в кнопки одним кликом."
Сообщение отредактировал bra2xa - Вторник, 06.11.2018, 12:18 |
|
| |
|