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, 4, 5, 6 ... 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
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Nov 10, 2021 20:14    Post subject: Reply with quote

Quote:
Центровку можно сделать настраиваемой через ini-параметр.
УЖЕ можно? Или планируется к разработке?

Уже добавил, будет в релизе 0.9.1, как и изменение темы на темную, включение отключение фильтров в заголовке таблицы и настраивание цветов в ini.

Quote:

Доскролить в чем? в ячейке? И не надо...

Значение может быть очень большим и не помещаться в ячейку, поэтому хотя ячейка и будет выделена, то не совсем понятно что именно нашлось. По идее текст в ней можно было бы как то прокручивать до нужного места. Даже таблицу доскролить до нужной колонки не так то и просто - надо вычислять её позицию и потом только скролить. Пока делать выделение ячейки не очень хочется и в итоге сделал как то так:


Quote:
Если ничего в АПИ Тотала/плагиностроения для этих целей нет

Нет ничего. Сама документация о написании плагинов по мне скудновата.

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

Возможно я чего то не докрутил, а возможно лучше использовать более новую версию. Отчасти это связано с тем, что используется виртуальный режим, при котором таблица не заполняется сразу, а только отрисовываются те строки, которые на экране. Это позволяет очень быстро показать таблицу с большим числом строк, но и получить вот такой дефект. Если взять плагины от Progman13, напр. CSV View, то большая задержка связанна именно с набивкой таблицы данными, а не парсингом файла.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Nov 11, 2021 13:28    Post subject: Reply with quote

little-brother wrote:
Значение может быть очень большим и не помещаться в ячейку, поэтому хотя ячейка и будет выделена, то не совсем понятно что именно нашлось. По идее текст в ней можно было бы как то прокручивать до нужного места. Даже таблицу доскролить до нужной колонки не так то и просто - надо вычислять её позицию и потом только скролить. Пока делать выделение ячейки не очень хочется и в итоге сделал как то так:


Приветствую!
Да, именно потому что значение может быть (а в моих случаях так и есть) очень большим, я и предложил тот вариант - который более человечен что ли в использовании....
Что самое плохое при поиске в массиве строк? Поиск первичный этой самой строки. Т.к. поиск уже внутри этой строки человеком уже более спокойно воспринимается. Т.к. глазами я буду вести вдоль всего-лишь одной линии и мне не нужно никуда "перепрыгивать" глазками. Т.е. если нашли инфу в колонке Х на строке У - то, выделив строки У и подсветив колонку Х, мы полностью облегчаем для пользователя оценку/окончательную выборку результата поиска. Даже если что-то не видно в ячейке с результатом поиска в колонке Х, то пользователю нужно лишь с этой одной ячейкой разбираться. Да, ширину колонки поправить возможно нужно - но и только. Глазами ему никуда прыгать не нужно! Все в одном месте! А в показанной реализации теперь нужно прыгать глазами от найденной строки, находящейся где-то в самом верху таблицы, до строки статуса, где мелким шрифтом что-то написано. А если у меня окно Листера открыто на весь экран - то глазами я должен "пробегать" кучу см. Возможно даже практически по диагонали. Туда-сюда, сюда-туда. Нашел, понял; не понял, не нашел - растянул колонку, опять сравнил с тем, что показано и т.д. Весьма вероятно, что этим субэлементом строки состояния пользоваться даже и не будешь - привычнее будет просто глазками всю строку степенно просматривать. Ибо это действие как-то "элементарнее" что ли ощущается. ИМХО самый неудобный вариант выбран решения.

little-brother wrote:
Отчасти это связано с тем, что используется виртуальный режим, при котором таблица не заполняется сразу, а только отрисовываются те строки, которые на экране. Это позволяет очень быстро показать таблицу с большим числом строк

И лучше этот режим - чем просто красивая прокрутка. Т.к. именно скорость оооооочень понравилась и используется в деле.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Nov 11, 2021 14:01    Post subject: Reply with quote

Quote:
ИМХО самый неудобный вариант выбран решения.

Выбран самый простой в реализации Very Happy
Подкраска ячейки, где находится, конечно удобнее, но надо делать не только подкраску, но и скроллинг до нужного столбца, если вся таблица не поместилась на экран.

Растянуть столбец не всегда получится, если значение относительно большое. Можно конечно добавить всплывающее окно по двойному клику, содержащее данные ячейки, и даже там сделать поиск. С другой стороны длинные значения в csv редкость, в отличии от широких таблиц.

Пока так релизнул.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Nov 11, 2021 16:15    Post subject: Reply with quote

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

Да в том то и фокус, что не надо))) достаточно строку высветлить, а то, что еще куда-то там вправо надо проскролить, чтоб увидеть выделенную ячейку - это уже руками/мышкой легко будет сделать. Ибо это вполне понятно и интуитивно.

little-brother wrote:
Растянуть столбец не всегда получится, если значение относительно большое.

А это не понял - а откуда вдруг ограничение возникло? Хотя конечно же вариант
little-brother wrote:
Можно конечно добавить всплывающее окно по двойному клику, содержащее данные ячейки, и даже там сделать поиск

легко перекрывает подобный недостаток. Но в принципе-то откуда ограничение?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Nov 11, 2021 17:48    Post subject: Reply with quote

Чисто физически, если у вас строка длиной 65000 символов, то мышку тащить вправо банально очень долго. Да и результат потом смотреть не очень. В целом длинные строки в табличном виде смотреть очень не удобно.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Nov 11, 2021 21:52    Post subject: Reply with quote

Ну мой предел - это 1564 символа. И, думаю, можно согласиться, что реально более 2000 символов в одной колонке - это дичайшее исключение. Поэтому "прокрутка внутри" колонки - это как бы вполне реально и доступно для использования.

Кстати, по-моему во всех вики вы забыли указать, что в строке для сборки плагина теперь надо указать в конце: -lUxTheme
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Nov 25, 2021 19:44    Post subject: Reply with quote

Приветствую!

Что ж, плагин работает шикарно))) - и вот один вопрос/запрос накопился.
Сейчас есть выделение строки, копирование строки/ячейки, где вызвано меню с этими командами. Только одной заметим! И по клику на столбец идет сортировка.
А возможно сделать выделение произвольное? И копирование соответственно произвольное?
Я к чему - сейчас очень часто надо скопировать ВЕСЬ столбец - как задача для разработки это в принципе уже полноценное действие. Мог бы и его только озвучить.
НО имхо - это частный случай от того, что мне надо скопировать, условно говоря, выделенную область таблицы, т.е. мышкой я очерчиваю ячейки, которые попадают
в выделение - и именно это и копируется по команде "копировать выделение". Частным случаем тут будет выделение всего столбца (кстати для такого БОЛЬШОГО
выделения логичнее бы какой-то набор из модификаторов привлечь: типа с зажатым CTRL кликаю по столбцу - и он весь выделяется, а если просто кликаю - то
идет сортировка, как сейчас и работает). Таким же частным случаем будет поддержка выделения одной ячейки - просто именно в этом случае становится более
интуитивным применение команды "скопировать ячейку". А то сейчас это надо еще догадаться, что при выделении всей строки, эта команда скопирует ту ячейку,
над которой было вызвано меню, содержащее эту команду.

P.S. а есть какое-то ограничение на кол-во строк в файле? Просто плагин сейчас на файл с почти 327000 строк не открывается. Вроде и не падает (хотя бы
Тотал не крашит), но и не открывается - ток Листер его "вскрывает".
Кстати, еще стоит подключать по умолчанию расширение TAB. Это тот же csv, где разделителем сразу и гарантированно по умолчанию должен быть табулятор.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Nov 25, 2021 22:18    Post subject: Reply with quote

Копирование произвольной области/ячеек уже есть в ToDo, но пока мне не нравится получаемый код, так что не факт что добавлю в конце концов.
Текущую ячейку думаю добавлю при следующем приступе программизма.

По поводу большого файла: у плагина есть настройка - max-file-size = 1 000 000 (1мб) по умолчанию. Это значение можно либо увеличить, либо установить в 0 и тогда плагин будет пытаться открывать файлы любого размера.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Fri Nov 26, 2021 00:18    Post subject: Reply with quote

little-brother wrote:
Копирование произвольной области/ячеек уже есть в ToDo, но пока мне не нравится получаемый код, так что не факт что добавлю в конце концов..

Это-то и тревожит. Т.к. копирование именно столбцов - оооочень частая операция стала. Т.е. если "кушать слона" по частям, то хотя бы вариант выделения столбцов и копирование их - было бы на первое время вполне хорошим подспорьем. А уж произвольность всего-и-вся.... Я то думал, что это наоборот будет попроще - эдакий обобщенный шаблон поведения, получивший свое отражение в коде. А уж как им пользоваться будет пользователь - эт его дело. А вона оно как выходит-то.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Nov 26, 2021 00:25    Post subject: Reply with quote

Да, отдельную колонку просто сделать, а если еще и без подсветки, то совсем без проблем. А вот для нескольких колонок уже нужна подсветка, так что чуть сложнее.
Для произвольных областей уже надо делать выделение рамкой, отслеживать нажатия с Ctrl/Shift и хранить какие ячейки были выделены - это все очень муторно.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Fri Nov 26, 2021 13:49    Post subject: Reply with quote

little-brother wrote:
Да, отдельную колонку просто сделать, а если еще и без подсветки, то совсем без проблем..

А подсветка - это то, как сейчас, к примеру, вся строка подсвечивается синеньким?
Ну тогда ведь вообще непонятно будет, что колонка выделена?
Может границы хотя бы жирными линиями как-то обозначить?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Nov 26, 2021 14:38    Post subject: Reply with quote

Quote:
А подсветка - это то, как сейчас, к примеру, вся строка подсвечивается синеньким?

Не совсем. Вся строка подсвечивается синим - это стандартный функционал компонента, используемого для отображения таблицы (LitView со стилем Отчет). Подсветка - это, к примеру, другой фон у отдельных ячеек. И эти отдельные ячейки входят в конфликт со стандартным выделением - оно отрабатывает в последнюю очередь и потому, чтобы его избежать кто-то рекомендует при выделении строки снимать с нее выделение обратно и рисовать самому, что как то криво. В целом на WinAPI изменять стандартное поведение компонент - это обычно боль и страдания, увы.

P.S. Пока наверно добавлю копирование всего (одного) столбца без всяких подсветок - это просто и быстро.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Fri Nov 26, 2021 17:33    Post subject: Reply with quote

little-brother wrote:
... Подсветка - это, к примеру, другой фон у отдельных ячеек. ...
P.S. Пока наверно добавлю копирование всего (одного) столбца без всяких подсветок - это просто и быстро.

Ааааа, ну так тогда ясно. Ток сперва же задать надо этот один какой-то столбец? Wink)) Типа над той ячейкой, где я вызвал ПКМ контекстное меню - там и будет работать команда "скопировать столбец этой ячейки"? Вариант если что...

И можно добавить тогда команду "Скопировать ВСЁ" - т.е. всю таблицу.
Конечно это можно сделать и просто переключив Листер в обычный текстовый режим. НО я тут топлю за унификацию - этого же хотелось бы на плагине просмотра экселевских-и-около-них файлов. Там такая команда может сработать только в рамках плагина))) Текстовое представление покажет нечитаемый набор символов. Т.е. если и делать "Скопировать ВСЁ" - то для всех.

О! еще момент! Фильтр сейчас работает только когда я нажимаю Enter в этом поле после ввода данных. Но чаще в это поле что-то вставляешь, откуда-то скопировав. И в этом случае хорошо бы, если бы поиск/фильтр стартовал после увода фокуса ввода/курсора из этого поля. Ну, типа щелкнули мышкой по любому месту в таблице с данными. А если вдруг я реально что-то ввожу руками в фильтр - то там да, полезно то, что есть сейчас: поиск после нажатия Enter.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Nov 29, 2021 16:11    Post subject: Reply with quote

Так, все же для точного понимания, что я понимаю, прошу уточнить:
верно ли я понимаю, что теоретически закодить проще варианты:
1) скопировать всё
2) скопировать строку
3) скопировать ячейку
4) скопировать столбец
5) скопировать выделенные подряд строки
(тип мышкой протянул и выделение с 3 по 10 строчки подсветило - стнд. функционалом компонента,
используемого для отображения таблицы (LitView со стилем Отчет))
т.к. все они не требуют доп.подсветки какой-то?

Если да - то в любом будущем можно увидеть такой функционал в плагинах, основанных на табличном выводе инфы? ))))


Last edited by Destiny on Mon Nov 29, 2021 20:16; 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: Mon Nov 29, 2021 16:32    Post subject: Reply with quote

Да, со строками особой проблемы нет, пожалуй добавлю все это, убрав режим единственной выделенной строки.

5) У стандартного компонента вроде как нет возможности выделить прямоугольник, чтобы затем выделилось несколько строк. Для выделения строк можно будет использовать Ctrl/Shift + Click. Это все поддерживается по умолчанию и потому достаточно только сделать перебор выделенного. Для столбцов и отдельных ячеек подобного нет.

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

Готово - https://sgeproject.narod.ru/wlx/csvtab-0.9.2-beta.zip
Просьба потестировать, пока изменения по другим плагинам размажу.

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

Цвет текущей ячейки (рамка) - по умолчанию RGB(20, 250, 250) возможно стоит изменить. Настроить можно в ini, задав current-cell-color и current-cell-color-dark.
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, 4, 5, 6 ... 9, 10, 11  Next
Page 5 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