AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Format plugin
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Sun Aug 14, 2011 4:50 pm    Post subject: Reply with quote

Исправлено: FixWrap теперь корректно обрабатывает строки являющиеся частями перенесенной строки.

Fixed: FixWrap now properly handles lines that are the parts of the wrapped line.


Format plugin v2.1
Back to top
View user's profile Send private message Send e-mail
[Yustas.NeO]



Joined: 12 Mar 2007
Posts: 252

PostPosted: Wed Sep 07, 2011 3:09 pm    Post subject: Reply with quote

Предлагаю

1. В функциях "Format::LineSortStrAsc" и "Format::LineSortStrDesc" добавить некий параметр, с помощью которого сортировка бы учитывала возрастание чисел (11>2).

Тоесть: d2 d1 d11 b2 b11 b1 -> b1 b2 b11 d1 d2 d11.



2. В функциях "Format::LineSortIntAsc" и "Format::LineSortIntDesc" добавить некий параметр, с помощью которого сортировалось бы не просто по "комбинации символов, начинающихся с цифр", а только по цифрам. Т.е. что бы могла сохраниться "первоначальная сортировка.

Тоесть: a1c a2c b1b b2b c1a c2a -> a1c b1b c1a a2c b2b c2a
а не c1a b1b a1c c2a b2b a2c



P.S. В файле "Format-Rus.txt" строка 102 "" - лишняя.
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 875

PostPosted: Thu Sep 08, 2011 6:28 am    Post subject: Reply with quote

Специфический реквест, едва ли он кому-то еще понадобится. Тогда уж надо идти дальше и дать возможность указывать compare callback, который будет принимать две строки и возвращать результат сравнения. Но это уже будет на скриптах, соответственно, медленно.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Thu Sep 08, 2011 12:13 pm    Post subject: Reply with quote

[Yustas.NeO] wrote:
Тоесть: a1c a2c b1b b2b c1a c2a -> a1c b1b c1a a2c b2b c2a
а не c1a b1b a1c c2a b2b a2c
Доработано.

Quote:
P.S. В файле "Format-Rus.txt" строка 102 "" - лишняя.
Убрано.
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Thu Sep 08, 2011 12:19 pm    Post subject: Reply with quote

Исправлено: LineSortIntAsc, LineSortIntDesc меняли очередность строк после сортировки.

Fixed: LineSortIntAsc, LineSortIntDesc change the order of lines after sorting.


Format plugin v2.2
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 535
Location: Сочи, Хоста

PostPosted: Fri Sep 09, 2011 9:54 am    Post subject: Reply with quote

Метод Format::LineReverse добавляет лишнюю строку
Выделите несколько строк , попробуйте сделать несколько раз
Back to top
View user's profile Send private message Send e-mail Visit poster's website
opk44



Joined: 16 Jan 2010
Posts: 305

PostPosted: Fri Sep 09, 2011 10:52 am    Post subject: Reply with quote

Andrey_A_A
Не совсем так. У меня описанное Вами воспроизводится только в том случае, если в выделение попадает последняя строка (которая не завершается парой 0D0A, т.е. "переводом каретки"). Сколько бы Вы не повторяли, больше одного перевода строки не появится. Кстати недавно по тому же поводу этот вопрос поднимался, вроде "ничем не кончилось".
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Fri Sep 09, 2011 4:04 pm    Post subject: Reply with quote

Andrey_A_A
Видимо включен "SmartSel::NoSelEOL".

После:
Quote:
AkelPad 4.6.4 (01.08.2011)
--------------------------
Добавлено: ручной параметр для "MouseOptions" со значением 16 - не выделять новую строку при тройном клике, а также при клике в зону левого отступа.
в "SmartSel::NoSelEOL" нет необходимости.
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 535
Location: Сочи, Хоста

PostPosted: Fri Sep 09, 2011 6:05 pm    Post subject: Reply with quote

из справки
Quote:
Определяет настройки мыши. Задается суммой членов:
1 - GUI.
2 - GUI.
4 - GUI.
8 - GUI.
16 - Не выделять новую строку при клике в зону левого отступа, а также при тройном клике.
По умолчанию: 1+2+4=7.

и что прописывать в AkelPad.ini
1+2+4+16=23 ?
Back to top
View user's profile Send private message Send e-mail Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2007
Location: Vinnitsa, Ukraine

PostPosted: Fri Sep 09, 2011 6:36 pm    Post subject: Reply with quote

Andrey_A_A
Code:
MouseOptions=23
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Andrey_A_A



Joined: 03 Jun 2010
Posts: 535
Location: Сочи, Хоста

PostPosted: Fri Sep 09, 2011 7:02 pm    Post subject: Reply with quote

FeyFre, спасибо
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Andrey_A_A



Joined: 03 Jun 2010
Posts: 535
Location: Сочи, Хоста

PostPosted: Sun Sep 11, 2011 2:45 pm    Post subject: Reply with quote

Работаю с большими списками слов, выяснил следующее:
функция
Call("Format::LineRemoveDuplicates")
Call("Format::LineGetUnique")
Call("Format::LineGetDuplicates")
работает очень медленно
проверял на списках 120.000 строк и выше
взять к примеру этот код на vbs - работает моментально
Удаление дубликатов

Code:
' Функция удаления из массива одинаковых значений
Function DelDublicateArr(Arrr)
  Dim oDict, Item, Key
  Set oDict = CreateObject("Scripting.Dictionary")
  oDict.RemoveAll
  oDict.CompareMode = 0
  For Each Item In Arrr
   If Len(Item) > 0 Then
    If Not oDict.Exists(Item) Then oDict.Add Item, Item
   End If
  Next
  Key = oDict.Keys
  Set oDict = Nothing
  DelDublicateArr = Key
End Function


может есть смысл поменять код для функций

заодно посмотреть
Call("Format::LineSortStrAsc")
Call("Format::LineSortStrDesc")
Call("Format::LineSortIntAsc")
Call("Format::LineSortIntDesc")

этот код тоже работает быстро
сортировка

Code:
' Функция сортировки элементов текстового массива по возрастанию
Function SelectingArrUp(ArrS)
  Call SortingUp(ArrS, 0, Ubound(ArrS) - 1)
  SelectingArrUp = ArrS
End Function

' процедура быстрой сортировки по возрастанию
Sub SortingUp(sArr, ll, rr)
  Dim ii, jj, xx, yy
  ii = ll : jj = rr
  xx = sArr((ll + rr) \ 2)
  Do
    While sArr(ii) < xx
      ii = ii + 1
    Wend
    While xx < sArr(jj)
      jj = jj - 1
    Wend
    If ii <= jj Then
      If sArr(ii) <> sArr(jj) Then
        yy = sArr(ii) : sArr(ii) = sArr(jj) : sArr(jj) = yy
      End If
      ii = ii + 1 : jj = jj - 1
    End If
  Loop Until ii > jj
  If ll < jj Then SortingUp sArr, ll, jj
  If ii < rr Then SortingUp sArr, ii, rr
End Sub

Back to top
View user's profile Send private message Send e-mail Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Sun Sep 11, 2011 3:13 pm    Post subject: Reply with quote

Andrey_A_A
Массив еще сформировать надо Smile Полный код скриптов приведите.
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 535
Location: Сочи, Хоста

PostPosted: Sun Sep 11, 2011 3:33 pm    Post subject: Reply with quote

Там всё просто, я не умею пока работать с памятью - просто выделяю и сортирую и вставляю обратно
Сортировка

Code:

With AkelPad
  tTxt = .GetSelText()
  If Len(tTxt) = 0 Then
    Call .SetSel(0, -1) : tTxt = .GetSelText()
  End If
  If Len(tTxt) = 0 Then Wscript.Quit
  Txt = Split(tTxt, Chr(13))
End With

Text = Join(SelectingArrUp(Txt), vbNewLine)
Call AkelPad.ReplaceSel(Text)

' Функция сортировки элементов текстового массива по возрастанию
Function SelectingArrUp(ArrS)
  Call SortingUp(ArrS, 0, Ubound(ArrS) - 1)
  SelectingArrUp = ArrS
End Function

' процедура быстрой сортировки по возрастанию
Sub SortingUp(sArr, ll, rr)
  Dim ii, jj, xx, yy
  ii = ll : jj = rr
  xx = sArr((ll + rr) \ 2)
  Do
    While sArr(ii) < xx
      ii = ii + 1
    Wend
    While xx < sArr(jj)
      jj = jj - 1
    Wend
    If ii <= jj Then
      If sArr(ii) <> sArr(jj) Then
        yy = sArr(ii) : sArr(ii) = sArr(jj) : sArr(jj) = yy
      End If
      ii = ii + 1 : jj = jj - 1
    End If
  Loop Until ii > jj
  If ll < jj Then SortingUp sArr, ll, jj
  If ii < rr Then SortingUp sArr, ii, rr
End Sub



второй такой же
вместо
Text = Join(SelectingArrUp(Txt), vbNewLine)
вставить
Text = Join(SelectingArrUp(Txt), vbNewLine)
и функцию приведенную выше
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Mon Sep 12, 2011 3:44 am    Post subject: Reply with quote

Andrey_A_A
Да, удаление дубликатов заметно быстрее - будем оптимизировать Smile
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
Page 6 of 7

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group