![]() |
|
|
![]()
|
|
| Noman |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 21.4.2007 Где: /mnt/Nowhere Репутация: нет Всего: нет |
Коллеги, вновь обращаюсь к вам за помощью.
Для начала опишу ситуацию: Есть приложение для своеобразной генерации теста, которое имеет 2 TMemo, TEdit и TListBox. Данные из них заносятся в файл через TIniFile. При этом одна TMemo - поле для ввода вопроса, другая для ввода ответов построчно, и TListBox для выбора верного ответа. После генерируется файл вида:
Вопросов может быть много, соответственно цифры в файле будут меняться и файл будет иметь вид:
Так вот моя проблема в том, что если вдруг придется удалить один из вопросов, их порядковые номера нарушатся. Поэтоу я пытаюсь найти путь их автоматической перегенерации при добавлении\удалении одного из вопросов. Пока безуспешно. Буду благодарен за любые наводящие ответы. |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
А зачем их каждый раз генерировать, главное чтобы номер вопроса соответствовал номеру ответа, а номера, которые видит пользователь можно уже и генерировать.
Главное, что-бы номера вопросов возрастали. |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
при добавлении нового вопроса: название секции = Question<[main]:[nextId]> [main]:[nextId] = [main]:[nextId] + 1 при удалении вопроса, удаляем всю секцию [Question<номер вопроса>] при выводе вопросов: выводим все существующе [Question<n>], где n=[1, [main]:[nextId]) перегенерация (хотя смысла в ней большого нету): загружаем все вопросы, очищаем файл и сохраняем вопросы с новыми номерами. Это сообщение отредактировал(а) korian - 25.3.2008, 09:54 |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
Я бы сделал это такого вида:
Тогда для удаления вопроса можно будет удалить удалив целую секцию и декрементировать значение qq. Плюс от этого - количество вопросов и вариантов ответов на каждый вопрос может быть абсолютно любым без потери читабельности)) Добавлено через 45 секунд блин, korian успел раньше)) |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
||||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
я не совсем так хотел выразится.
[questionN]:[qq] - это количесвтво вопросов на данный ответ. Значение отражает реальное количетво вопросов. Если это значение равно скажем трём, то и кличество ответов три. Если ноль - то и ответов нет и можно говорить об ошибке составления файла. Точно также и с [main]:[qq] |
|||
|
||||
| Noman |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 21.4.2007 Где: /mnt/Nowhere Репутация: нет Всего: нет |
Спасибо за ответы.
В продолжение темы, никак не удается получить данные по выбору секций и подсекций: То есть, имеется TListBox в количестве 2-х штук, TMemo и TComboBox. Сам код собственно такой (я знаю, что он не верный, но мне никак не удается найти нужное решение):
То есть при запуске программы в TComboBox выбирается, какой именно нужен файл, после его выбора все его секции отображаются в TListBox1. Проблема в том, что я не могу найти решения, для того чтобы при выборе секции в TListBox1, в TListBox2 отображались ее подсекции, и соответственно при выборе подсекции, значение выводилось в TMemo. Мне кажется, что делать надо все-таки через цикл, но мой вариант просто моментально пробегает все варианты, и останавливается на последнем. Добавлено через 4 минуты и 19 секунд То есть основной вопрос заключается в том, как узнать, какая секция выделена в данный момент. |
|||
|
||||
| Noman |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 21.4.2007 Где: /mnt/Nowhere Репутация: нет Всего: нет |
Вроде вышел из положения:
Это сообщение отредактировал(а) Noman - 27.3.2008, 16:21 |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |