Russian Qt Forum
Май 02, 2024, 18:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Распарсить строку INI-файла  (Прочитано 9088 раз)
titan83
Гость
« Ответ #15 : Январь 27, 2016, 16:24 »

)))
Не ожидал - тут даже мини холиварчик наметился))
Хотя доля правды в словах про технологию и очки есть, мне кажется Подмигивающий
На самом деле все затеивается для возможности ЗАПИСАТЬ ini из программы, не меняя его структуру.
Т.е. для read-only ini меня полностью устраивает функционал QSettings, но если меняешь какое-нибудь значение из программы, то QSettings уберет все комментарии, перетасует все поля и будет в своем праве Подмигивающий
А у меня ini еще и людьми читаются, поэтому, кстати, я и не использую xml - формат супер, но для целевой аудитории будет сложноват. Я в xml храню всю информацию о ini-файле - какие поля должны присутствовать, какие в них допустимы значения, как отображать названия полей в GUI - это удобно.
Записан
titan83
Гость
« Ответ #16 : Январь 27, 2016, 16:28 »

На счет QString.split() - в начале своего пути я именно им и пользовался, вроде, все работает, но шаг в сторону - расстрел, тьфу - segfault, а если не хочешь segfault'ов, то изволь обложить все if-then, и вот тут понимаешь, что уже все не так и просто и элегантно.
Что бы тут не говорили старшие товарищи, но я пока что считаю regexp вполне удобным инструментом для работы с текстом, лишенным многих недостатков split().
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #17 : Январь 27, 2016, 16:30 »

а если строка будет типа

Key = "String1; String2;" ; blabla

то надо учитывать и комменты межды кавычками...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
titan83
Гость
« Ответ #18 : Январь 27, 2016, 18:30 »

а если строка будет типа

Key = "String1; String2;" ; blabla

то надо учитывать и комменты межды кавычками...

epic fail - вы правы)))

На самом деле выяснилось, что заказчик планирует все же хранить настройки в БД, так что на это дело я пока забиваю.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Январь 28, 2016, 08:37 »

На счет QString.split() - в начале своего пути я именно им и пользовался, вроде, все работает, но шаг в сторону - расстрел, тьфу - segfault, а если не хочешь segfault'ов, то изволь обложить все if-then, и вот тут понимаешь, что уже все не так и просто и элегантно.
Возможно QString::split - худшее что есть в Qt. С точки зрения производительности это ужасно, но главное -такие ф-ции развращают пользующегося. Немного подумать и сделать (ведь задачка-то в общем для начинающих) ему уже в лом, хочется вот так ляпнуть контейнером - и все готово.

Что бы тут не говорили старшие товарищи, но я пока что считаю regexp вполне удобным инструментом для работы с текстом, лишенным многих недостатков split().
Человек недавно потративший время/силы на регулярки иначе считать не может - это нормально, должно пройти время (может значительное) для "переоценки ценностей". Поэтому "пока что" (ростки демократии) - уже хорошо  Улыбающийся

[off]Респект модератору, правильно убрал грубияна с яичками [/off]
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 23.