LINUX.ORG.RU

Ответ на: комментарий от cruxish

Так нельзя, а то не получится потроллить :}

Deleted
()
Ответ на: комментарий от invy

Ты уже научил жсон валидировать себя и, (это важнее) кодекомплишну?

GateKeeper ★★
()
Ответ на: комментарий от Evgueni

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

В таком деле конечному «пользователю» гораздо удобнее использовать конечные средства, чем рожать их самому.

Проблема созерцания простого конфига даже в виде XML несколько надумана. Простой конфиг выглядит в XML так же просто как и простой конфиг в каком нибудь ini. И абсолютно логично при таком раскладе пихать этот самый простой конфиг в какой-нибудь «реестр» — точку хранения с стандартным способом доступа.

Вот совсем другое дело, когда конфиг выглядит сложно. Тут появляется аж несколько альтернатив. Взять ёмбедед язык программиорвания, sh или lua например. Или родить самопал. Или взять страшный корявый XML. Разумеется, созерцать сложный XML конфиг радости мало, для созерцателей лучше использовать когломерат lua/sh/питон. Как потом с этой радостью работать другим - отдельный печальный вопрос.

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Тут появляется аж несколько альтернатив. Взять ёмбедед язык программиорвания, sh или lua например. Или родить самопал. Или взять страшный корявый XML. Разумеется, созерцать сложный XML конфиг радости мало, для созерцателей лучше использовать когломерат lua/sh/питон. Как потом с этой радостью работать другим - отдельный печальный вопрос.

Сам пугаешь, сам боишься.

tailgunner ★★★★★
()
Ответ на: комментарий от Hertz

Чо? То то в стандарте аяксописательства прокляли XML и дружно перешли на JSON.

Аякс это ЖаваСкрипт. JSON - это тупо структура в этом скрипте. Для JavaScript это оправдано, но не нужно тянуть этот JSON туда, где ему не место.

andreyu ★★★★★
()
Ответ на: комментарий от vasily_pupkin

нет в «стандартном» линаксе средств для работы с ini,

Можно поинтересоваться в каком стандарте из линукса выпилили гну кори утилз?

ugoday ★★★★★
()
Ответ на: комментарий от andreyu

Ну возможно YAML и более удобен (опять же это зависит от), но чем удобен JSON вне Java?

Всем тем же, чем и xml, но при этом он вполне человекочитаем. При этом, для него в том же пайтоне парсер есть в стандартной библиотеке, в отличие от YAML.

Axon ★★★★★
()

Подскажи тогда уж парсеры для этих твоих .conf

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от tailgunner

Весь фрагмент громоздок.

странно - а помоему так совсем наоборот, а когда дохрена всего (зачастую лишнего) пихают в одну строчку - вот это громоздко

Еще раз: валидация есть? Если я напишу IOPCClasMatch - на какой стадии и кто отловит ошибку?

парсеру твое IOPCClasMatch - до лампочки, как написано - он так и передаст, а вот API (а конкретно - см. на кого эти параметры ссылаются "IOKitPersonalities"), не знает не про какой «IOPCClasMatch», а IOPCIClassMatch окажется «пустой» - что в этом случае произойдет (по работе данного драйвера) я не знаю, да и вообще параметр довольно специфичный - подробнее можно посмотреть тут

uin ★★★
()
Ответ на: комментарий от Deleted

ini и на чистом sh просто парсить. Другой вопрос - костыльность этого решения

vasily_pupkin ★★★★★
()
Ответ на: комментарий от uin

Еще раз: валидация есть? Если я напишу IOPCClasMatch - на какой стадии и кто отловит ошибку?

парсеру твое IOPCClasMatch - до лампочки

Оно твое, не мое. То, что парсеру «до лампочки», означает, что валидации у тебя нет. Твой XML-конфиг ничуть не лучше тупого ini.

tailgunner ★★★★★
()
Ответ на: комментарий от vasily_pupkin

для XML что этот набор использовать мешает?

Что покажет diff для двух файлов?

<a><b>42</b></a>

и

<a> 
<b>42</b> 
</a>

Что он должен показать?

ugoday ★★★★★
()

Судя по проигнорированному варианту, у меня появился новый игнораст. Ну да ладно :}

Deleted
()
Ответ на: комментарий от vasily_pupkin

А что должен показать diff?

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

ugoday ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Т.е. ты хочешь сказать, что ini можно парсить регексами?

Нет, для ини тоже должна быть отдельная тулза.

PolarFox ★★★★★
()
Ответ на: комментарий от Deleted

Судя по проигнорированному варианту, у меня появился новый игнораст. Ну да ладно :}

Не обольщайся, может человеку просто лениво тщательно участвовать в срачике.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Ну тогда на ещё: xmldiff. Хотя на самом деле я не знаю как он работает.

Deleted
()
Ответ на: комментарий от Deleted

Пример лучше был выше по комментам.

он не чем не лучше, мой конкретный пример показывает текстовой вариант и графический, так вот - оно так сконструировано специально, чтобы пользователь не видел «тегов» - они от него скрыты, ему просто нужно заполнять поля и выставлять значения: String, Boolean, Number (integer), Date, Data + Dictonary и Array, ведь редактор намного лучше и точней сделает разметку - правильно?

Правда ты не сказал, что это такая реализация реестра, так бы стало понятнее, зачем оно там.

Так реестр по сути и содержит конфиги, но тут одно большое отличие - реестр вбирает их «в себя» и хранит все_это_добро в бинарном виде

Там ведь тебе никто схему не нарисует, а надо программе отдать то, что она написала и сказать тип, хотя это и не имеет особого смысла, но так принято :}

ниче не понял....

WatchCat

Дело в том, что использовать xml, так как в Вашем примере, ващета моветон.

key и value никак не связаны, кроме как следованием одного за другим.

нет ну что значит «моветон»? это инструмент или «заповедь» какая нибудь ? вот «goto» - теперь тоже моветон, но если смотреть в связке с дракон-схемами - то это самый лучший вариант (а как еще то?)..

uin ★★★
()
Ответ на: комментарий от wota

для xml есть xmldiff

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

а что есть для ini?

gnu coreutils.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

gnu coreutils.

ок, покажи все изменения в ini-файле, ес-но простая перестановка не должна показываться, как и комментарии и whitespace

wota ★★
()
Ответ на: комментарий от uin

>ему просто нужно заполнять поля и выставлять значения: String, Boolean, Number (integer), Date, Data + Dictonary и Array, ведь редактор намного лучше и точней сделает разметку - правильно?

В моём случае никто тип не проставляет вообще. Разве что он есть в схеме, но тогда проставлять опять-таки не нужно.

Deleted
()
Ответ на: комментарий от vasily_pupkin

У тебя дефицит внимательности что ли? Или как там называется заболевание, когда дети постоянно отвлекаются.

Напоминаю краткое содержание предыдущих серий:

0. Ты спросил чем отличаются два файла.

1. Я показал чем.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Ну, ты все перепутал. Давай я тебе напомню.

Тебе не понравился дифф двух XML, потому что «С точки зрения xml это два одинаковых дерева, поэтому корректный дифф-для-зумля не должен ничего показывать». С другой стороны тебя устраивает наличие диффа идентичных по этому критерию участков ini файла.

vasily_pupkin ★★★★★
()
Ответ на: комментарий от wota

покажи все изменения в ini-файле, ес-но простая перестановка не должна показываться, как и комментарии и whitespace

Неразумные фонаты ХМЛ, у вас совсем уже мозги атрафировались, что примитивные вещи кажутся вам сложными, а может и недостижимыми?

как и комментарии и whitespace

Для вырезания комментариев используются sed

простая перестановка не должна показываться

для этого придумана утилита sort, которая ВНЕЗАПНО сортирует строки исходного файла, после чего порядок уже не имеет значения.

покажи все изменения в ini-файле

а вот для этого уже нужен diff.

А чтобы соединить работу этих полезных маленьких утилит есть шелл с его богатыми возможностями перенаправлять потоки ввода-вывода.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

для этого придумана утилита sort, которая ВНЕЗАПНО сортирует строки исходного файла, после чего порядок уже не имеет значения.

Ну давай отсортируем ини файл с секциями

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Прежде чем что-то поменять придётся «полюбоваться». В простых случаях, где XML выглядит хоть как-то читаемо, хватает обычных переменная=значение, а в сложных случаях XML-структуры могут разобрать разве что роботы, то есть человеки там лишние.

Evgueni ★★★★★
()
Ответ на: комментарий от Deleted

«ISO 8879:1986 Information processing — Text and office systems — Standard Generalized Markup Language (SGML)»,

Вот бы им и оставаться где-то в обработке текста.

DonkeyHot ★★★★★
()
Ответ на: комментарий от Evgueni

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

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

наличие диффа идентичных по этому критерию

Глупый, кто тебе сказал, что они идентичны? Они разные и diff показывает где именно. Если ты не веришь мне, можешь перепроверить вывод diff на своём компьютере?

ugoday ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.