BARдак внутри BAR файлов

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

BARдак внутри BAR файлов

Сообщение Andrey_A »

Недавно необходимо было извлечь информацию из .Bar файлов и обнаружил такую вещь что информация (команды, параметы, ...)в них располагаются не по порядку:
button1=...
param1=...
cmd1=...
paht1=...
iconic1=...
menu1=...
button2=...
param2=...
cmd2=...
paht2=...
iconic2=...
menu2=... затем все с 3,4...60...

а встречается в середине,к примеру,такое на три листа:
param38=...
cmd26=...
paht53=...
button19=... и т. д. и. т. п.
Сначало вообще не мог понять мои ли это Бары :)
потом дошло... видимо это происходит когда что-то добавляешь, изменяешь. Конечно в таком разброде извлечь нужную информацию сложно. Сначала пытался вручную это поправить - но дело гиблое...
Нашёл решение : Чтобы привести в порядок это дело, необходимо на панели инструментов (нужного бара) нажать изменить, а потом ok
Вопрос: можно ли как-то сделать так чтобы все bar файлы обновлялись.?Представьте... их не один десяток и каждый жать изменить, окей
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Вопрос - а смысл?

В INI-файлах порядок секций, равно как и порядок параметров в рамках отдельно взятой секции не имеет абсолютно никакого значения. Где бы не располагался параметр cmd26, тотал все равно поймет, что это команда 26-й кнопки.

Кстати, такой же бардак ты можешь наблюдать в файлах wincmd.ini и wcxftp.ini. И во всех INI-файлах конфигурации плагинов.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Andrey_A
Способ принудительной сортировки содержимого BAR-файлов предложен эффективный. Попробовал — работает. Я о такой возможности не знал, благодарю.
Что касается пакетного обновления BAR-файлов, то надо всё-таки признать, что:
• ручная правка их содержимого позарез нужна по большому счёту в очень специфических случаях, когда сортировка не имеет никакого значения (например, при замене абсолютных путей на %Commander_path%);
• огромное число ("не один десяток") BAR-файлов — ситуация ещё более нетривиальная (у меня их, например, всего три).
Так что можно воспринимать обновление BAR-файлов только по одному (если уж оно действительно зачем-то так нужно) как своего рода "налог на роскошь". :wink:
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Сообщение Andrey_A »

Вопрос - а смысл?
сам смысл и идея, если честно, ещё витает в голове, а именно построчное сравнение новых BAR файлов (созданных из табличного файла, где я всё меню,команды... редактирую) и имеющихся с выводом изменений)
Кстати, такой же бардак ты можешь наблюдать во всех INI-файлах конфигурации плагинов
Кстати, а почему бы Гислеру не сделать кнопочку "обновление" или "оптимизиция файлов\секций" К примеру, я не люблю бардака и во многих секциях привык сразу ставить всё на свои места:
В секциях где можно делаю всё в алфавитном порядке [Shortcuts],Configuration],[ShortcutsWin],[PackerPlugins],FileSystemPlugins],[ContentPlugins],[Searches],.....-хотя Тотал как научили класть всё в конец, так он и кладёт ,но можно ведь и переучить!
Мне кажется это остаточное явление с 90-х годов. Взять, к примеру недавно созданную функцию Ассоциаций [Associations] - там всё кладётся как надо!!!! Значит можно, когда захотим!!!
Не программист, но подозреваю, что в алфавитном и красиво причёсанном порядке тотал на мили-мили секунды, а быстрее будет работать!
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

огромное число ("не один десяток") BAR-файлов — ситуация ещё более нетривиальная (у меня их, например, всего три)
Да вы, батенька, минималист. Сейчас ради прикола посчитал - у меня 85, и мне вовсе не кажется, что это много.
Один или два раза мне действительно приходилось разыскивать заблудившийся параметр по файлу, но не чаще того. Далее, сейчас открыл несколько панелей, над которыми больше других измываюсь, редактируя как средствами Тотала, так и руками - почти все на месте. Было бы интересно знать, какая именно операция вносит этот BARдак.
Способ, предложенный Andrey_A, достаточно очевиден, но все равно ему спасибо, буду знать.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

Вахмурка писал(а):Было бы интересно знать, какая именно операция вносит этот BARдак.
Редактирование отдельных кнопок, удаление, вставка и т.п.
То есть работа не с панелью, а с отдельными кнопками.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Andrey_A писал(а):Не программист, но подозреваю, что в алфавитном и красиво причёсанном порядке тотал на мили-мили секунды, а быстрее будет работать!
Не будет. Ускорение было бы в том случае, если бы сам Тотал считывал параметры в алфавитном порядке (точнее, если бы та часть параметров, что считывается им при очередной операции, располагалась бы в начале INI-файла). К тому же, неизвестно, как работают виндовые функции. Может быть, система при первом обращении автоматом считывает весь файл в память, парсит его, и потом уже ищет ключи в некой оптимизированной структуре, где время поиска практически не зависит от имени ключа.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Думаю, такую задачу запросто можно вынести за рамки возможностей тотала, поручив ее внешней утилите, сортирующей секции и параметры INI-файлов, и вызывать ее для INI и BAR-файлов.
Ответить