![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.04.2011
Сообщений: 11
|
![]()
Вот зачем я связался с ini-файлами????
Второй день не могу управиться с задачей чистки секций. К примеру имею такой ини: [Name] Short=Социалка long=Опрос о социальном положении семей [Options] Вопросов=5 [Вопрос 1] Type=0 Question=Вас устраивает ваше семейное благосостояние? 1-=да 2-=нет [Вопрос 2] Type=1 Question=Как бы Вы оценили уровень материального положения Вашей семьи 1-=живем вполне обеспеченно 2-=достаток выше среднего 3-=средняя обеспеченность [Вопрос 3] Type=5 Question=Укажите примерный размер денежного дохода, пришедшийся на одного члена Вашей семьи в прошлом месяце (в рублях) [Вопрос 4] Type=0 Question=Ваш пол 1-=м 2-=ж [Вопрос 5] Type=5 Question=Ваш возраст (укажите число полных лет) Ини создаю в своей оболочке, и в процессе создания опроса может возникнуть потребность удалить вопрос. Соответственно нужно почистить ини. Стереть вопрос под номером Н, и сдвинуть все остальные. КАК???? |
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
Прочитай секцию в стринглист, удали нужную строку и запиши стринглист на место
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.04.2011
Сообщений: 11
|
![]()
Забыл дописать в чем основная проблема:
Удалить секцию не сложно - команда EraseSection. Задача - как восстановить порядок вопросов, не забывая, что секции разного формата в зависимости от type? Чувствую задача нереальная ![]() |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Можно узнать, зачем восстанавливать порядок вопросов?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 12.04.2011
Сообщений: 11
|
![]()
Чтобы вызывать их поочередно:
redaktor.Edit4.Text:=AppIni.ReadStr ing('Вопрос '+ inttostr(Q),'1-', redaktor.Edit4.Text); Если будет отсутствовать секция, то начнутьсь проблемы с переходами м/у вопросами. Может подскажите другой удобный инструмент для работы с данными? (я с делфи 3й день общаюсь) |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 12.04.2011
Сообщений: 11
|
![]()
Вот, что у меня получается.
Вот чувствую, что с ини я не туда полез... |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
Такие задачи решаються при помощи XML-документов. Этот формат специально предназначен для записи документов разной размерности, формата и вложенности в одном файле. Вот пример вашего файла в XML. Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 22.04.2011 в 20:55. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
хм, да ведь и с ini все mega-просто...
Все что надо это счётчик и бесконечный цикл. смотри.. Код:
|
![]() |
![]() |
![]() |
#9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Вариант , предложенный Человеком_Борща имеет как преимущества, так и недостатки. плюс - закодил и забыл, минус - не так вписал номер вопроса ил захотел что-то помеять - огреб много гемороя с перенумеровкой остального.
Как делаю я - завожу в "глобальной" секции (которая точно наличествует, у тебя это ) такой список величин и секций: Код:
А вот при записи в инишку узнаем реальное количество вопросов, и прописываем в "глобальную" секцию их "наименования" и в цикле для каждого такого вопроса создаем секцию. Таким образом, имеем подобие древовидной структуры, когда имена секций прописываются в параметрах других секций, считываем имена и потом считываем из секций, названных этими именами И совет - в любом случае, код работы с инишкой лучше отделать от кода работы с записями/классами вопроса, удаляете в одном месте(классе/массиве/листе) и потом дампите(в инишку), независимо от того было ли что-то удалено или нет. пишите независимый код ![]() Последний раз редактировалось phomm; 22.04.2011 в 18:09. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 12.04.2011
Сообщений: 11
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как пересмотреть все секции в INI.ini ? | iskurt | Помощь студентам | 1 | 31.01.2010 07:48 |
INI | Яр|/||< (^_^) | Общие вопросы Delphi | 2 | 13.10.2009 16:53 |
ini Файл | Volkogriz | Общие вопросы Delphi | 1 | 12.11.2008 13:44 |
*.INI | Mustang | Общие вопросы Delphi | 16 | 09.10.2007 02:33 |