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] xmltab - просмотр XML файлов
Goto page Previous  1, 2, 3, 4, 5, 6, 7  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: Sun Aug 28, 2022 21:51    Post subject: Reply with quote

little-brother wrote:
"Брать всё" нет такой опции
Есть брать первый попавшийся элемент - хоть это будет <?xml, хоть CDATA или же выделить первый узел с тегом.

Тогда вообще ничего не понимаю.
И без этой опции все тогда работало - так, как вы пытаетесь описать.
А наличие этой новой опции со значением 0 как раз-таки и вроде предназначено для того, что бы на самом первом объекте/узле/теге на вкладке ТЕКСТ показать ВЕСЬ контент текущего файла в текстовом виде. При этом должно быть фиолетово - ЧЕМ является этот первый объект в тексте - да хоть однострочным комментарием.
А вот при значении 1 при выделении этого первого элемента файла - этого комментария, к примеру, на вкладке ТЕКСТ отражался бы только текст этого комментария. И ни грамма более.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Mon Aug 29, 2022 00:18    Post subject: Reply with quote

Допустим есть файл
Code:

<?xml version="1.0"?>
<node>Hello, world!</node>

В дереве будет два узла первого уровня - ?xml и node.
С включенной опцией (по умолчанию этот вариант) сразу после загрузки файла текущим узлом в дереве будет выбран node. Если значение опции 0, то текущим узлом будет ?xml.

Ни при каком текущем узле всё содержимое файла отображено быть не может.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Aug 29, 2022 17:35    Post subject: Reply with quote

little-brother wrote:
Допустим есть файл
Code:

<?xml version="1.0"?>
<node>Hello, world!</node>

В дереве будет два узла первого уровня - ?xml и node.
С включенной опцией (по умолчанию этот вариант) сразу после загрузки файла текущим узлом в дереве будет выбран node. Если значение опции 0, то текущим узлом будет ?xml.

Ни при каком текущем узле всё содержимое файла отображено быть не может.

Ага. Пояснение к выбранному примеру понял. НО не понял - так зачем вообще тогда реализовывали эту новую опцию?
Из пояснения к причинам её появления и из своих размышлений относительно использования плагина - как раз-таки и "выпестовалось"
то понимание, что нужен кейс, когда при каких-то условиях - я смогу получить в теле плагина (не переключаясь куда-то и как-то) ВСЁ
текстовое значение файла. С подсветками, с нужным форматированием - чтобы получить как бы аналог команды в редакторе - отформатировать всё.
Чтобы просмотреть глазами по быстрому всё, чтобы скопировать что-то частично нужное из всего общего. Ну мало ли что ещё в голову придет.
И для этого нужна опция, когда плагин будет не только лишь по узлам ходить и показывать их частное содержимое, но и как-то в общем сможет отразить весь файл.
И эта опция под это дело идеально подходит. Сейчас с этой опцией я пытаюсь просмотреть несколько файлов тестовых и вообще перестаю видеть разницу.
Только лишь натыкаюсь на ошибочно вставляемый тег #TEXT первым и крэш плагина при попытке с ним поработать. Это как минимум сейчас первое дело для исправления.

А во-вторых - всё же хотелось бы разобраться с логикой новой опции. В том виде, как она сейчас реализована (смотрю ваше определение в ответе-цитате выше) - она без толку.
Ибо первый тег/объект - не важно что это - в файле будет всегда либо супер корневым <ROOT>...</ROOT>, либо очень частным микротегом типа <?xml version="1.0"?>
И толку от реализации логики "показать первый или не первый тег" - становится ну очень мало. Ибо в 85% наверное случаев мы так и так этот первый тег и увидим.
Который чисто ROOT )))) А вот приделать к опции логику - показать или первый найденный полноценный тег (из вашего примера курсор/выделение в дереве тегов ставится
сразу при открытии плагином вашего тестового файла - на узел node и на вкладке TEXT мы видим всю его внутреннюю "кухню" - в текстовом виде все его подузлы+данные)
Или Сразу всё содержимое файла, ток уже отформатированное и подкрашенное (в вашем случае курсор/выделение ставится на первый объект -<?xml version="1.0"?>
и на вкладке TEXT мы видим сразу всё содержимое файла) - вот это да, это полезно и нужно.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sat Sep 17, 2022 14:38    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: Wed Sep 21, 2022 03:52    Post subject: Reply with quote

Падение пока даже не пытался повторить. Времени нет.

По поводу опции: по стандарту <?xml вначале обязательно, а то что у вас его обычно нет - скорее исключение. Опция позволяет сразу просмотреть содержимого тега с данными, т.е. root в вашей нотации.

Сразу все содержимое файла показано быть не может, т.к. справа отображается только содержимое выбранного узла. Тут либо добавлять корень дерева, чтобы и его можно было выбрать, либо делать, чтобы если нет выделения в дереве, то справа показывать весь файл. Оба варианта сомнительны.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 178

Post (Separately) Posted: Mon Oct 17, 2022 00:02    Post subject: Reply with quote

little-brother
Задам вопрос здесь, но по большому счёту он применим ко всем вашим tab-плагинам. Скажите, пожалуйста, не сложно ли будет добавить настройку цвета сетки таблицы? Дело в том, что в режиме Dark Mode белые линии сетки на чёрном фоне (учитывая их частоту и периодичность) сильно контрастят, что очень утомительно для глаз. Я подозреваю, что если вы их сразу не добавили, то значит это связано с какими-то сложностями, нетривиальностями. Или нет? Было бы очень хорошо, если бы получилось. Когда Dark Mode включен во всём TC, то крупные светло-серые элементы окна плагина — полосы прокрутки, статусная строка, заголовки столбцов — не так сильно «бьют» по глазам, как частокол ярких белых тонких линий. Если настройка хотя бы только их цвета станет доступна, то тёмным режимом плагина можно будет пользоваться во время работы.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Mon Oct 17, 2022 09:43    Post subject: Reply with quote

Стандартной функции для этого нет, в отличии от других цветов.
Посмотрел в гугле - вроде не очень сложно должно быть. Надо будет попробовать и, если получится, то во все плагины добавлю, но увы сейчас времени на плагины попросту нет.

Как вариант можно еще отключить рисование сетки вовсе.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 178

Post (Separately) Posted: Tue Oct 18, 2022 04:06    Post subject: Reply with quote

little-brother wrote:
сейчас времени на плагины попросту нет

Добро, подождём пока появится.
little-brother wrote:
Как вариант можно еще отключить рисование сетки вовсе.

Неплохой вариант. А если на него время найдётся, так и вообще хороший Smile (Особенно для плагина csvtab, поскольку в нём только таблица.)
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Tue Oct 18, 2022 10:57    Post subject: Reply with quote

Quote:

отключить рисование сетки


Готово для всех плагинов. Изменил три строчки кода в каждом плагине - дольше изменения раскидывал, чем программировал.

Изменение цвета на потом, т.к. это не так просто.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 178

Post (Separately) Posted: Tue Oct 18, 2022 14:07    Post subject: Reply with quote

little-brother wrote:
три строчки кода

Мал золотник, да дорог! У себя посмотрел пока три — xml, csv, json — работают исправно, красота. Спасибо от души и за код, и за добрый отклик.
little-brother wrote:
дольше изменения раскидывал, чем программировал

А вы процесс раскидывания тоже бы запрограммировали Wink Эх, да, на мелочёвку время уходит. Зато теперь ёжики вас добрым словом поминают.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Oct 27, 2022 17:27    Post subject: Reply with quote

little-brother
в сопроводительном default.ini
open-first-element = 1 ; 0/1, The selected item should be element on the plugin start up
исчезло осознанно или очепятка?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Oct 28, 2022 22:34    Post subject: Reply with quote

Происки рептилойдов! Спасибо, поправил.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sat Feb 04, 2023 13:48    Post subject: Reply with quote

Файл https://www.upload.ee/files/14899365/BCFileFormats.xml.html

Далее текст можно прочитать, а можно сразу перепрыгнуть к блоку "NB! важное уточнение!"
там описано более позднее и корректное понимание происходящего... имхо.

Вроде как сабж показывает этот файл, но что-то его показываемое не совпадает с написанным.
К примеру, первым блоком в файле идут перечисления

но в сабже они показаны абсолютно пустыми:

Переключение на вкладку ТЕКСТ вообще не показывает ничего....
Есть подозрение на то, что вроде как при проверке онлайн пишется, что
Code:
Line: 19, Pos: 27, Text: "<ElementStr Value="&#2 ;Keyword"/>", Reason: "&#2 ;" is not a valid entity.

Т.е. вроде как надо бы было прервать обработку такого файла, ну, или показать ВСЁ - но только
ДО момента ошибки. Но вероятно используемая либа парсинга просто такого не позволяет.
НО - хорошо бы что-то придумать по возможности на такой "облом-с".
Само сочетание "&#2 ;" где, понятно дело, пришлось вставить пробел перед точкой с запятой - иначе движок
форума усиленно конвертит "это" в пустой пробел - вроде как официально реально ничем не является. А по
кол-ву вхождений в файле и при проверке в самой проге - ЧЕМ это может быть - можно прийти к выводу, что
это придуманный XML-based набор символов, которые предваряют строку символов, которую надо перевести
тем, что переводит ресурсы проги на родной язык. Так что на первый взгляд этот набор символов надо игнорить
принудительно что ли.... Имя файла стабильно - не меняется уже давно. Можно, если что - цепляться за это и
для этого файла тупо удалять предварительно из текста этот запрещенный набор символов.

Но, почему-то, даже вычистив эти символы при открытии мы получаем пустоту для этих же тегов:


NB! важное уточнение!
ТААААК. Похоже я тут сам с собой сломался в анализе. Значений у тегов нет, а в ini есть show-empty=1 отсюда и none.
Блин, писал же - надо бы и перевод для этого сделать. Вписал бы я тут show-empty=<нет значения> а не как сейчас
show-empty=1 - и было бы мне сейчас понятнее... А то в мозгах всё перепуталось. Итак, значений нет, есть атрибуты.
Атрибуты мы видим на вкладке GRID для выделенного тега. Со значком @ перед именем атрибута. Ок, вспомнил это.
Значит тут тока одна ошибка - отсутствие на вкладке TEXT для тегов /BCFileFormats и /BCFileFormats/TTextFormat
их содержимого в текстовом виде. А это похоже результат наличия ошибки во входных данных при парсинге.
НО набор упомянутых символов - это не только эта ошибка. Даже и при их удалении - во вкладке TEXT ничего нет...
А! Ну и ещё Grammar - ну ооооооочень странно выглядит со строкой, состоящей из угловых скобочек...

P.S.
А!!! Я кажется понял про >>>> - плагин/парсер не смог разобраться со всеми субтегами TTextFormat, которые есть в этом
файле. Вот по этому и облом с показом нужного и всего-всего на вкладках.... Он только первый и то - не до конца смог понять...
Парсинг сломался на строке
Code:
<Text Value="&lt;&lt;[a-zA-Z]((_[0-0a-zA-Z])|[0-9a-zA-Z])*>>"/>

потому что в ней есть две подряд угловых скобки, которые надо было то же бы записать в экранированном виде как
Code:
<Text Value="&lt;&lt;[a-zA-Z]((_[0-0a-zA-Z])|[0-9a-zA-Z])*&gt;&gt;"/>

Но этого сделано не было автором xml-файла И далее понеслось...
НО! что удивительно - ни один онлайн-чекер не с'агрился на этот файл, как только лишь я убрал "это", описанное выше.
Странно всё это как-то... Но факт, как только я правлю в атрибуте тега прямое использование угловой скобки > на её
эквивалентное представление в виде xml-entity
Code:
&gt;

то парсинг продолжается и ошибка находится дальше, а плагин отображает все больше инфы в дереве тегов и на вкладках.
Но вот тока теперь на вкладках нет обратного превращения символов
Code:
&gt;
в один печатный >. А это вроде как ожидается... или нет. Но ведь табличное представление именно визуальное!
Т.е. оно отображает человеческое восприятие информации. Вот на вкладке TEXT - там будет выжимка из файла как-есть.
Чтобы понимать - КАК это записано в файле. А вот на вкладке GRID - по идее именно "превращение" в человеко-читабельный
вариант текста и ожидается от данного плагина.


Last edited by Destiny on Mon Feb 06, 2023 13:46; edited 4 times in total
Back to top
View user's profile Send private message
imig73



Joined: 18 Jun 2013
Posts: 279
Location: г. Иркутск

Post (Separately) Posted: Sat Feb 04, 2023 18:31    Post subject: Reply with quote

Рады за вас и желаем всех благ в программировании.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Mar 06, 2023 12:55    Post subject: Reply with quote

little-brother
что-то можно уточнить по поводу мной написанного? Rolling Eyes Embarassed
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, 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


Powered by phpBB © 2001, 2005 phpBB Group