Усложнённая работа с Ini файлами09.08.2014, 17:20. Показов 2269. Ответов 10
Метки нет (Все метки)
Всем доброго времени суток! Работаю с несколькими файлами по структуре схожие с Ini, но немного усложнённые. Обрабатываю в TIniFile, TStringList или TSTrings не хотел бы задействовать. Структура такова:
В принципе, мне ясно как можно реализовать такое, единственное к чему ума не приложу так это как прочитать родительские секции? Подскажите пожалуйста. Заранее спасибо! З.Ы.: Забыл написать, что в родительских секциях могут быть ещё родительские, т.е. ещё дальше. Да, я сам уверен, что без рекурсии тут не обойтись.
0
|
||||||
| 09.08.2014, 17:20 | |
|
Ответы с готовыми решениями:
10
Работа с INI файлами Работа с ini - файлами |
|
Супер-модератор
|
||
| 09.08.2014, 17:29 | ||
|
0
|
||
| 09.08.2014, 17:46 [ТС] | |
|
UI, Почему нет? У меня получилось обработать файл, единственное что не знаю как вытащить родительские секции.
Добавлено через 6 минут Вернее как вытащить то, что после двоеточия, которое находится после квадратных скобок. --- Ну хорошо, я знаю что в TStringList есть такие команды как Names и Values, по сути похожи для чтения ключей. Но как быть с секциями? И как приравнивать ключи к определённым секциям? Ведь значения Names и Values могут быть из разных секций.
0
|
|
|
Супер-модератор
|
|
| 09.08.2014, 17:46 | |
|
Еще раз повторяю, обработать можно любой файл, только не с помощью TIniFile. Первая строка, которую тебе надо получить (в принципе, это будет решение твой задачи: получить строку файла, в которой содержится название первой секции), не является названием секции, поэтому использовать ReadSections для ее получения ты не сможешь (а других методов для того, чтобы получить отдельно строку из файла в классе TIniFile нет). Придется открывать файл как простой текстовый, читать из него первую строку, и разбивать ее на название секции + список родительских секций. А дальше уже можешь читать содержимое секций через методы TIniFile, и работать с ними.
0
|
|
|
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
|
||||||
| 09.08.2014, 17:47 | ||||||
|
X_Starter_X, может быть тебе вот это
:identity_immunities,weapon_probability, default_weapon_params считать в какой то масив или тот же стринглист, т.е. раздельно ведь они везъде начинаются с : и через запятую идут? и убрать их, а дльше работать как с ини? а дальше, что то такое..
1
|
||||||
| 09.08.2014, 17:55 [ТС] | |
|
DeadHipo, Я вот тоже думаю, загрузить один и тот же файл в TIniFile и в TStringList, а после относительно друг друга обрабатывать. Кстати как лучше сравнивать: применить из TStringList команду Names и далее по списку, или в TiniFile есть команды лучше?
0
|
|
|
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
|
|
| 09.08.2014, 17:59 | |
|
X_Starter_X, ну в TIIni есть ReadSection ReadSectionsValue а если ты будешь использовать NamesValue (или как то так), то тебе придётся дописать код, что бы найти интересующую тебя секцию.
1
|
|
|
|
|||||||||||
| 09.08.2014, 23:56 | |||||||||||
|
А не легче данный файл привести к правильной форме, а потом обрабатывать как Ini ?
К примеру
1
|
|||||||||||
| 10.08.2014, 01:08 [ТС] | |
|
Avazart, Уже по другому сделал. Читаю грубо TStringList, топорно но работает.
0
|
|
| 10.08.2014, 10:23 [ТС] | |
|
Avazart, Вот. Оно самое.
0
|
|
| 10.08.2014, 10:23 | |
|
Помогаю со студенческими работами здесь
11
Работа с ini файлами Работа с Ini файлами
Работа с Ini-файлами Работа с ini файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|