| View previous topic :: View next topic |
| Author |
Message |
[Yustas.NeO]
Joined: 12 Mar 2007 Posts: 235
|
Posted: Tue Sep 13, 2011 8:09 am Post subject: |
|
|
| Instructor wrote: | | Доработано. |
Наконец-то дошли руки попробовать... Отлично! Правда я имел ввиду именно опцию... И жаль что не сохраняется изначальная сортировка...
Но все равно спасибо! |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Thu Sep 15, 2011 4:58 am Post subject: |
|
|
Изменено: увеличение скорости выполнения всех Line* функций и в особенности функций LineGetUnique, LineGetDuplicates, LineRemoveDuplicates, у которых изменен механизм обработки.
Изменено: LineGetDuplicates не меняет порядок строк.
Changed: increase execution speed of Line* functions, and in particular LineGetUnique, LineGetDuplicates, LineRemoveDuplicates functions, in which changed the mechanism of processing.
Changed: LineGetDuplicates does not change the lines order.
Format plugin v2.3 |
|
| Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 477 Location: Сочи, Хоста
|
Posted: Thu Sep 15, 2011 6:10 am Post subject: |
|
|
| Quote: | | увеличение скорости |
Instructor, отлично работает, только что проверил метод Call("Format::LineSortStrAsc") на документе в 1.327.560 строк - время работы 15-18 секунд, когда раньше можно было и не дождаться!!!
Call("Format::LineRemoveDuplicates") - 13 сек - здорово!!! |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Fri Dec 16, 2011 9:57 am Post subject: |
|
|
Сортировка строк по возрастанию добавляет в конце лишний перевод строки.
MouseOptions=23, WordBreak=265, SmartSel::NoSelEOL включен.
P.S. Остальные функции не проверял. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Fri Dec 16, 2011 11:00 am Post subject: |
|
|
VladSh
65-ый раз - отключаем "SmartSel::NoSelEOL". |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Fri Dec 16, 2011 12:25 pm Post subject: |
|
|
Instructor
В 65-ый же - он нужен.
По функции сортировки строк по возрастанию.
Баг всё равно присутствует, только с выключенным SmartSel::NoSelEOL он выглядит иначе - перебрасывает курсор на строку, после которой было выделение.
Например выделил 3 строки, курсор стоит в конце 3-й строки, после отработки функции он стоит в начале 4-й.
У нас по этому поводу уже было длительное обсуждение "по поводу захватов переводов всех выделенных строк", и это может быть 256 раз правильно, но но с точки зрения пользователя это баг, - если пользователь выделил 3 строки и это видно визуально, то после отработки различных функций оно так и должно оставаться. |
|
| Back to top |
|
 |
Tcheluskin
Joined: 16 Mar 2012 Posts: 7
|
Posted: Sat Mar 17, 2012 9:02 am Post subject: |
|
|
Во первых, спасибо автору плагина.
Меня интересует только функция вставки разрывов строк в местах переноса (Format::LineFixWrap).
Проблемы:
1. Format::LineFixWrap не удаляет лишний пробел перед переносом строки.
2. Есть ли отдельный плагин/скрипт только с такой функцией? Прочие мне не нужны.
Спасибо. |
|
| Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 188
|
Posted: Sat Mar 17, 2012 10:41 am Post subject: |
|
|
| Tcheluskin wrote: | Проблемы:
1. Format::LineFixWrap не удаляет лишний пробел перед переносом строки. | Это не проблема. Это нормально. Ф-ция делает ровно то, что должна - "Вставка разрывов строк в местах переноса."
Для удаления концевых пробелов есть соответствующая встроенная (безо всяких плагинов) функция (Alt+Backspace = "убрать Tab'ы и пробелы в конце строк"). Для вызова её в скрипте используйте Command(4174) сразу после вызова LineFixWrap. |
|
| Back to top |
|
 |
nikspb
Joined: 15 May 2011 Posts: 7 Location: г.С.Петебург
|
Posted: Thu Mar 29, 2012 2:02 pm Post subject: |
|
|
Уважаемые!
Не подскажете, что надо сделать, чтобы после применения Format::LineGetDuplicates номера оставшихся строк в тексте окна не изменялись ? (По сравнению с номерами этих строк до применения Format::LineGetDuplicates).
P.S. Плагин LineBoard включен.
Заранее благодарен за ответ. |
|
| Back to top |
|
 |
dracosha
Joined: 21 Apr 2013 Posts: 2
|
Posted: Sun Apr 21, 2013 1:08 pm Post subject: |
|
|
Instructor спасибо большое за AkelPad.
У меня возник вопрос по данному плагину.
Вот что написано в описании:
Format::LineSortIntAsc
Сортировка строк текста по числовому возрастанию.
мне нужно сделать сортировку вот этих строк:
текст
| Code: | Group0/Action0/descr=u13
Group0/Action1/descr=b3
Group0/Action10/descr=u5a
Group0/Action11/descr=u6
Group0/Action12/descr=u6a
Group0/Action13/descr=u7
Group0/Action14/descr=u7a
Group0/Action15/descr=u8
Group0/Action2/descr=u2
Group0/Action3/flags2=d1
Group1/Action0/descr=u13
Group1/Action1/descr=b3
Group1/Action10/descr=u5a
Group1/Action11/descr=u6
Group1/Action12/descr=u6a
Group1/Action13/descr=u7
Group1/Action14/descr=u7a
Group1/Action15/descr=u8
Group1/Action2/descr=u2
Group1/Action3/flags2=d1 |
что бы в итоге получилось вот так:
текст
| Code: | Group0/Action0/descr=u13
Group0/Action1/descr=b3
Group0/Action2/descr=u2
Group0/Action3/flags2=d1
Group0/Action10/descr=u5a
Group0/Action11/descr=u6
Group0/Action12/descr=u6a
Group0/Action13/descr=u7
Group0/Action14/descr=u7a
Group0/Action15/descr=u8
Group1/Action0/descr=u13
Group1/Action1/descr=b3
Group1/Action2/descr=u2
Group1/Action3/flags2=d1
Group1/Action10/descr=u5a
Group1/Action11/descr=u6
Group1/Action12/descr=u6a
Group1/Action13/descr=u7
Group1/Action14/descr=u7a
Group1/Action15/descr=u8 |
может пример конечно и грубоватый, но сортировка по численному возрастанию реально работает только до первого знака / |
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1067 Location: Poland
|
Posted: Sun Apr 21, 2013 2:09 pm Post subject: |
|
|
dracosha
You can do this using the script SortInColumns.js with following settings:
Sort range:
Columns: From: 1, To: 26
Lines: From: 1, To: 20
Sort keys - columns:
Key 1: From: 6, To: 7, Numerically
Key 2: From: 14, To: 16, Numerically
To make easy to see, in AkelPad you should set monospace font (eg.: Consolas, Courier New, Lucida Console). |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1431
|
Posted: Sun Apr 21, 2013 4:16 pm Post subject: |
|
|
dracosha
Можно сначала отсортировать все строки, а потом выделить нужный столбец с зажатым Alt и отсортировать еще раз. Правда, Group0 и Group1 придется сортировать отдельно... |
|
| Back to top |
|
 |
dracosha
Joined: 21 Apr 2013 Posts: 2
|
Posted: Wed Apr 24, 2013 6:45 pm Post subject: |
|
|
KDJ
По ссылке какой-то код, в котором я ничего не понимаю
Infocatcher
Дело в том что у меня таких групп аж 145  |
|
| Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 188
|
Posted: Wed Apr 24, 2013 8:35 pm Post subject: |
|
|
dracosha
Только без обид. Оказание помощи предполагает от просящего, как минимум, желание понять. Если вопрос так стоит, что Вы не желаете даже попробовать самостоятельно разобраться "как воспользоваться чужим скриптом", то предлагаю Вам воспользоваться каким-либо офисным пакетом (MS Excel или LibreOffice). Вероятно для Вас это будет проще и быстрее. Кроме того, это еще и избавит от необходимости "шаманить" над текстом из-за переменной длины и начальной позиции ключей сортировки (0-145).
Порядок действий (для Excel2003) такой | Code: | 1) открыть текстовый файл с сортируемым списком.
2) в мастере текстов указываем
на первом шаге: "с разделителями",
на втором шаге: "символом разделителем является" ставим птичку в [другой:], и указываем символ слэш [/]
3) Получаем текст в трех колонках.
Group0 Action0 descr=u13
Group0 Action1 descr=b3
Group0 Action10 descr=u5a
Group0 Action11 descr=u6
Group0 Action12 descr=u6a
...
4) В первых двух столбцах сделать замену "Group" и "Action" на "ничего". Получится так:
0 0 descr=u13
0 1 descr=b3
0 10 descr=u5a
0 11 descr=u6
0 12 descr=u6a
...
5) Сделать сортировку диапазона, указав последовательность (Столбец A, затем Столбец B, затем Столбец C)
6) Осталось склеить текст обратно, восстановив выброшенные слэши, "Group" и "Action". Для русской версии Excel формула будет такой (для второй строки):
=СЦЕПИТЬ("Group";A2;"/";"Action";B2;"/";C2)
7) Растягиваете формулу на все строки. Получаете что хотели
Group0/Action0/descr=u13
Group0/Action1/descr=b3
Group0/Action2/descr=u2
Group0/Action3/flags2=d1
Group0/Action10/descr=u5a
Group0/Action11/descr=u6
...
8) Копируете результат обратно в текстовый файл.
В случае с LibreOffice Calc разница в том, что он не умеет сортировать списки без заголовков, поэтому возможно придется добавить одну строку с "заголовками". И формулы там по английски (на примере второй строки):
=CONCATENATE("Group";A2;"/";"Action";B2;"/";C2)
|
Есть ограничение по максимальному количеству строк. Для Excel2003 - 65536 строк, LibreOffice - 1048575 строк (минус 1 на заголовки). |
|
| Back to top |
|
 |
|