Страница 1 из 1

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

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

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

Добавлено: Сб сен 18, 2010 08:28
MVV
Вопрос - а смысл?

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

Кстати, такой же бардак ты можешь наблюдать в файлах wincmd.ini и wcxftp.ini. И во всех INI-файлах конфигурации плагинов.

Добавлено: Сб сен 18, 2010 09:16
Avada
Andrey_A
Способ принудительной сортировки содержимого BAR-файлов предложен эффективный. Попробовал — работает. Я о такой возможности не знал, благодарю.
Что касается пакетного обновления BAR-файлов, то надо всё-таки признать, что:
• ручная правка их содержимого позарез нужна по большому счёту в очень специфических случаях, когда сортировка не имеет никакого значения (например, при замене абсолютных путей на %Commander_path%);
• огромное число ("не один десяток") BAR-файлов — ситуация ещё более нетривиальная (у меня их, например, всего три).
Так что можно воспринимать обновление BAR-файлов только по одному (если уж оно действительно зачем-то так нужно) как своего рода "налог на роскошь". :wink:

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

Добавлено: Сб сен 18, 2010 10:08
Вахмурка
огромное число ("не один десяток") BAR-файлов — ситуация ещё более нетривиальная (у меня их, например, всего три)
Да вы, батенька, минималист. Сейчас ради прикола посчитал - у меня 85, и мне вовсе не кажется, что это много.
Один или два раза мне действительно приходилось разыскивать заблудившийся параметр по файлу, но не чаще того. Далее, сейчас открыл несколько панелей, над которыми больше других измываюсь, редактируя как средствами Тотала, так и руками - почти все на месте. Было бы интересно знать, какая именно операция вносит этот BARдак.
Способ, предложенный Andrey_A, достаточно очевиден, но все равно ему спасибо, буду знать.

Добавлено: Сб сен 18, 2010 11:20
GGS
Вахмурка писал(а):Было бы интересно знать, какая именно операция вносит этот BARдак.
Редактирование отдельных кнопок, удаление, вставка и т.п.
То есть работа не с панелью, а с отдельными кнопками.

Добавлено: Сб сен 18, 2010 12:37
CaptainFlint
Andrey_A писал(а):Не программист, но подозреваю, что в алфавитном и красиво причёсанном порядке тотал на мили-мили секунды, а быстрее будет работать!
Не будет. Ускорение было бы в том случае, если бы сам Тотал считывал параметры в алфавитном порядке (точнее, если бы та часть параметров, что считывается им при очередной операции, располагалась бы в начале INI-файла). К тому же, неизвестно, как работают виндовые функции. Может быть, система при первом обращении автоматом считывает весь файл в память, парсит его, и потом уже ищет ключи в некой оптимизированной структуре, где время поиска практически не зависит от имени ключа.

Добавлено: Сб сен 18, 2010 15:19
MVV
Думаю, такую задачу запросто можно вынести за рамки возможностей тотала, поручив ее внешней утилите, сортирующей секции и параметры INI-файлов, и вызывать ее для INI и BAR-файлов.