Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[wlx] csvtab - просмотр CSV файлов
Goto page Previous  1, 2, 3 ... 5, 6, 7 ... 9, 10, 11  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Nov 29, 2021 21:04    Post subject: Reply with quote

little-brother wrote:
Просьба потестировать, пока изменения по другим плагинам размажу.

Изменено:
* Выделение нескольких строк и Ctrl + A для выделения всех
* Подсветка текущей ячейки
* При поиске по Ctrl + F найденная ячейка подсвечивается, а в строке состояния показывается позиция искомого текста.
* Копирование столбца


Так, очень хорошее начало вечера)))
Выделение CTLR+A работает. Один нюанс - когда перед этим у меня была выделена строка и ячейка в ней, то после этой команды выделение одной ячейки почему-то смещается на первую ячейку в той колонке, где находится эта первоначально выделенная ячейка. Неожиданно.

Если свернуть Листер с выделенной таблице и потом вернуться в него, то фокус на таблицу не возвращается и вся таблица отрисовывается бледно-сероватым цветом элемента НЕ в фокусе.
Причем факт выделения таблицы не главный - может и одна лишь строка быть выделенной перед этим свертыванием/развертыванием. Просто для повторения и гарантированности результата так проще описать.

Поиск, кстати, всегда похоже начинается с текущей строки, но имхо его всегда правильнее задавать с начала таблицы! если он стартанул через CTRL+F или F7. А если и когда жмется F3 или F5 - поиск далее - то тогда продолжать его именно с выделенной/активной строки.

И при поиске есть баг с отрисовкой найденной строки. Берем таблицу с 10 строками. и каким-то кол-вом столбцов. Искомая фраза есть в 6 строке в каком-то столбце. Ставим текущей строкой вторую! И жмем CTRL+F или F7. Заполняем поле поиска, Ок. И ... подсвечивается искомая 6 строка + нужная ячейка в этой строке .... И!!! и подсвеченной остается вторая строка!

Этот же эффект виден "на лету", когда мы выделяем всю таблицу. Если повторять это процесс быстро, то видно, что ПЕРЕД выделением всей таблицы сперва две строки отдельно отрисовываются(или сбрасывают прежнюю отрисовку), а уж потом всё остальное подсвечивается. А этими двумя строками являются старая актуальная строка и новая, куда я ткнул предварительно, чтобы сбросить все выделение таблицы, прежде чем её всю выделить заново.

Копирование во всех вариантах работает нормально.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Mon Nov 29, 2021 22:14    Post subject: Reply with quote

Спасиб, буду править.

Quote:
Один нюанс - когда перед этим у меня была выделена строка и ячейка в ней

Ок, пофиксю.

Quote:
Если свернуть Листер с выделенной таблице и потом вернуться в него, то фокус на таблицу не возвращается

Скорее всего с этим ничего не поделать. При сворачивании Lister окно плагина теряет фокус и соответственно перестает реагировать на происходящее вовне. При восстановлении окна Lister фокус не возвращает/не оповещает и окно плагина потому отреагировать не может. Можно конечно костыли приделать в виде системных хуков, проверки активности окна по таймеру или чего-то такого, но как то это все не очень варианты.

Quote:
Поиск, кстати, всегда похоже начинается с текущей строки, но имхо его всегда правильнее задавать с начала таблицы

Не уверен, что такое поведение будет более правильным/ожидаемым.
В принципе, можно добавить настройку в ini.

Quote:
и подсвеченной остается вторая строка!

Да, баг.

Quote:
ПЕРЕД выделением всей таблицы сперва две строки отдельно отрисовываются(или сбрасывают прежнюю отрисовку)

У меня к сожалению это не видно (возможно потому, что все графические свистоперделки-анимации выключены). Попробую пошаманить с блокировкой отрисовки.

Добавлено спустя 2 часа 54 минуты:

Поправил - https://sgeproject.narod.ru/wlx/csvtab-0.9.2-beta2.zip

Старт поиска сделал с первой или последней строки (в зависимости от направления). Остальное, кроме потери фокуса, - пофиксил.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Tue Nov 30, 2021 17:55    Post subject: Reply with quote

little-brother wrote:
Поправил - https://sgeproject.narod.ru/wlx/csvtab-0.9.2-beta2.zip

сразу баг:
Делаем поиск по F7. Находим одно вхождение, Жмём F3 для дальнейшего поиска, получаем окно об отсутствии новых результатов, Жмём Ок в этом окне и в таблице НЕ подсвечивается строка с последней найденной строкой, содержащей найденный/искомый элемент. И теперь если опять нажать F3 - мы получим краш плагина и Тотала.

little-brother wrote:
Не уверен, что такое поведение будет более правильным/ожидаемым.
В принципе, можно добавить настройку в ini.

Прошу не путать! Поиск по команде "Начать поиск", реализуемый через F7 или CTRL+F, это именно что поиск с НАЧАЛА таблицы. А продолжение поиска - вот оно всегда С текущей позиции возможно. И это вполне адекватно. Если я буду всегда и только F3 жать, чтобы получить продолжение поиска (или его старт, если строка для поиска вдруг будет на момент нажатия F3 не заполненной), то я получу ровно то, что есть и уже сейчас. А вот если я целенаправленно CTRL+F нажму - значит я целенаправленно с НАЧАЛА хочу искать. Т.к. я выбрал команду "НАЧАТЬ поиск" Wink
ИМХО тут какое-то особое условие и настройку нет смысла вводить. Т.к. я пользуюсь именно что встроенными средствами разграничения поиска.

little-brother wrote:
кроме потери фокуса

а точно типа это вдруг нельзя просто решить? Я к тому, что вроде как уведомление от родительского окна дочернему по этому поводу должно было быть проброшено. Да и фильтр сообщений можно же навесить вроде как. Просто эта фигня с отсутствием фокуса в нужном месте хреновое дело, имхо. Ты не понимаешь - открылось ли окно или висит в фоне за каким-то другим, тыкаешь в него и ... и напрочь слетает выделение нужных строк, что я только что сделал.

Насчет выделения строк массово. Параметр Row в строке статуса, имхо, вполне логично так же обновлять по строке, где будет выделена ячейка. Сейчас это поле обновляется только при выделении одной строки. Но это ничем не отличается и от выделении нескольких. Т.к. и в этом случае будет тыкнута мышой какая-то строка, которая и завершит фактически процесс всего выделения строк. Т.е. вот в таблице я хочу выделить с 23 по 30 строки. До момента выделения Row показывало 23 - т.к. там была позиция текущей строки/активной ячейки. Когда с шифтом я ткнул в какую-то ячейку на 30 строке и сделал выделение строк с 23 по 30 - то Row так же должно бы показать 30, т.к. именно в этой строке мне будет показана отрисовка "текущей"/"ткнутой" ячейки или же по другому выбранной 30й строки в составе ВСЕХ разом выделенных строк с 23 по эту 30ю.

Насчет вздрагиваний анимации или чего-то там. У меня тоже нет анимации и каких-то перделок, всё тоже отключено.
НО! вот что видно: представим выделенные 10 строк на 6 столбцов. В терминах Excel это A1-F10.
Так вот предположим, что выделение всех строк я делал кусочно с CTRL+мышь щелчками. Поэтому последняя строка, в которую я ткнул(точнее я-то ткнул в ячейку этой строки - но тут главное, что не важно в какую именно ячейку этой строки я ткнул!), чтобы создать полное выделение A1-F10 - это была строка №7. Если я теперь ткну мышкой в ячейку Е3 с зажатым CTRL (типа я снимаю выделение строки №3), то: сперва дернется и перерисуется ячейка Е1, потом перерисуется строка №7, и только лишь потом перерисуется со снятием выделения строка №3!
Лучше всего это заметнее при большом выделении строк. Т.е. если на экран вмещается строк 40 - то их и надо выделять и повторять описанное мной. Только с большим разрывом: последняя выделенная строка пусть будет №37, а теперь строка, с которой мы снимаем выделение - пусть будет №5.

Ну и сама ячейка, активная, куда щелкаешь мышкой. Очень кажется, что она раза три перерисовывается, прежде чем принять окончательную форму. Причем один раз рисуется без выделения - черными буквами на белом фоне. Но вроде бы это же стнд. функционал компонента ListView со стилем Отчет. Активация строки и причем строки с выделением.
Этот момент не то, чтобы мешал пользоваться плагином. Нет, по сути свой функционал плагин сейчас выполняет на все 100. НО если этот момент можно отловить и убрать - лучше убрать)))


Last edited by Destiny on Fri Dec 10, 2021 21:10; edited 1 time in total
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Tue Nov 30, 2021 19:06    Post subject: Reply with quote

Quote:
сразу баг

Да, есть. Поправлю.

Quote:
ИМХО тут какое-то особое условие и настройку нет смысла вводить

Я уже отказался. Лишние настройки то же ни к чему.

Quote:
а точно типа это вдруг нельзя просто решить? Я к тому, что вроде как уведомление от родительского окна дочернему по этому поводу должно было быть проброшено.

Распространение оповещений идет обычно в обратную сторону, т.е. если кликнули по элементу, то сначала сработает обработчик элемента, если его нет, то оповещение будет передано родителю, а если и там не обработали, то еще ниже. В обратную сторону оповещения не идут.
Наверно самый простой костыль: отловить перерисовку окна и, если окно Lister активно, то перевести фокус на один из элементов плагина. Проверил - даже работает. Единственное, плагин мог потерять фокус, когда тот был, к примеру на фильтре, то после восстановления по идее надо его вернуть туда же, т.е. надо отслеживать, где фокус был в последний раз. В случае с csv-плагином достаточно просто, с другими надо смотреть.
Не совсем подходит, если окно Lister продолжает быть видимым, например на другом экране или не перекрывается с текущим активным, то перерисовка вызвана не будет.
P.S. Можно было просто TAB-ом перенести фокус на таблицу после переключения на окно Lister, но это не удобно, каждый раз его нажимать.
P.P.S. Уф, при активации окна, Lister устанавливает фокус на окне плагина, и это оповещение и надо отлавливать. Так что я сделялъ.

Quote:
Параметр Row в строке статус

Про него я забыл. В виду того, что сейчас можно выделять несколько строк и есть текущая ячейка, то думаю там стоит отображать позицию текущей ячейки, а не выделения (если строку сначала выделить, а потом ткнуть по ней, то текущая ячейка будет стоять на невыделенной строке, т.е. строка текущей ячейки не равна выделенной строке).

По перерисовке посмотрю и попробую найти лишние места.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Sat Dec 11, 2021 08:49    Post subject: Reply with quote

little-brother
Хороший плагин, спасибо, но есть проблема, при указании в INI:
Code:
max-file-size=0
или хотя бы
max-file-size=12000000

файлы больше 10 МБ отображаются плагином, но при попытке сортировки по любой колонке сразу падает ТС с такой ошибкой:
"Exception EStackOverflow in module TOTALCMD.EXE at 6E887757. Stack overflow."
Есть тестовый файл, если нужно, могу прислать в личку - 11,9 МБ, если его порезать до 9,99МБ (удалить часть содержимого)- то все работает нормально.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sat Dec 11, 2021 11:05    Post subject: Reply with quote

Конечно присылайте - можно и на почту lb.im<собака>ya.ru
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sat Dec 11, 2021 16:03    Post subject: Reply with quote

little-brother
Давать в открытом виде на форуме почтовый адрес я бы не рекомендовал, даже если он для вас не имеет никакой ценности. Слегка замаскировано.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sat Dec 11, 2021 19:54    Post subject: Reply with quote

Avada, да Яндекс, Мейл, Гугл вроде как успешно сейчас со спамом борятся - давно уже не видел, так что сейчас особого смысла нет, если популярный почтовик использовать.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Thu Dec 16, 2021 03:40    Post subject: Reply with quote

little-brother
Спасибо, новая версия работает стабильно!
Есть еще ряд пожеланий:
1. Две двойные кавычки обрабатываются неверно, если в csv файле присутствуют кавычки, например - АО "Рога и копыта", то по правилам Excel экранирует кавычки, и получается текстовая запись - АО ""Рога и копыта"", Эксель при просмотре автоматом отбрасывает одни кавычки, а плагин показывает обе пары.
2. Не работает быстрая клавиша "1" (Только текст в меню Вид), то есть если нужно быстро просмотреть этот же файл просто в текстовом виде.
3. Я так понимаю, разделитель он автоматом принимает первый встречный символ (",", ";", "TAB" и т.п.). Но в случае если в заголовке таблицы имеется запятая, а фактически используется ";", то приходится вручную изменять внизу. Возможно ли каким-либо образом изменить логику автоматического определения? Например, по общему количеству встреченных символов-разделителей (потенциальных) в файле. А то сейчас единично можно поменять, а при просмотре большого количества по Ctrl+Q - это нереально.
4. Не пойму логику выравнивания в ячейке: одни данные слева, другие справа в ячейке, настройка filter-align ни на что не влияет.
5. И еще маленькое пожелание - на последующие версии в релиз вкладывать ini-файл с настройками по-умолчанию, желательно со всеми предусмотренными ключами и их описанием (часть можно закомментировать), как это представлено на сайте по ссылке в readme.txt. Думаю, будет удобнее, когда все собрано в одном месте и без лишних телодвижений (сейчас приходится заходить на сайт, формировать свой ini и т.п.).
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Dec 16, 2021 14:37    Post subject: Reply with quote

1. Принято.
2. Да, в 32-битной версии не работает. Посмотрю что можно сделать.
3. Не совсем: обрабатывается первые несколько строк, и считаются разделители. Потом выбирается наиболее часто встречающийся, вхождение которого не сильно отличается по строкам.
Можете пример, когда неправильно отрабатывает прислать?
4. Если число, то вправо, остальное влево. Первая колонка всегда влево (это особенность стандатного компонента Windows). По хорошему надо поправить, но пока лень.
5. Да, разумно. Однако, при обновлении плагина такой ini не затрет ли пользовательский?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Thu Dec 16, 2021 15:42    Post subject: Reply with quote

little-brother
Не затрёт, если вкладывать как Example.ini или что-то в этом роде с пояснением в ридми, для чего этот файл нужен. Достаточно типовая практика.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.


Last edited by Avada on Sat Dec 18, 2021 07:23; edited 1 time in total
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Dec 17, 2021 17:45    Post subject: Reply with quote

Готово.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Sat Dec 18, 2021 05:32    Post subject: Reply with quote

little-brother
1. Отлично
2. Отлично
3. Да, действительно, тестовые файлы CSV, хоть и формируются спец. ПО автоматически, но в заголовке присутствует много нетабличных данных. Согласен, что в этой части останется как есть.
4. Отлично
5. Отлично
Спасибо!
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Tue Nov 15, 2022 20:55    Post subject: Reply with quote

little-brother
DETECT-строка по умолчанию у плагина почему-то поддерживает лишь CSV расширение, хотя и работает для более "верных" файлов TAB, которые (если сделаны корректно с разделителем \t) - как раз-таки изначально и предназначены для показа табличной формы представления данных - через символ табуляции. А вот у CSV файлов чаще именно с разделителями ,;| можно встретить.

Так что предлагается использовать строку:
MULTIMEDIA & (ext="CSV" | ext="TAB")
ибо уже даже проверено - всё работает как и должно.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Nov 17, 2022 16:07    Post subject: Reply with quote

Shocked оказывается и такое бывает. Ок, добавлю, тем более там нашли ошибку для случая, когда в файле больше 128 столбцов, так что надо заапдейтить.
Наверно можно сделать, чтобы строка из ini-читалась. Вроде так модно делать?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 5, 6, 7 ... 9, 10, 11  Next
Page 6 of 11

 
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


Powered by phpBB © 2001, 2005 phpBB Group