Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2015, 01:45   #1
Pol1212
Пользователь
 
Регистрация: 22.05.2014
Сообщений: 23
По умолчанию Загрузка ini файла в Memo

Здравствуйте столкнулся с проблемой загрузки ini файла. Содержимое файла:
Цитата:
[Quest1]
Quest=Сколько лет васи?
Quest_O1=A пять
Quest_O2=B семь
Quest_O3=C девять
Quest_O4=D родинадцать
Ansver=A

[Quest2]
Quest= Когда началась ВОВ?
Quest_O1=A 1941
Quest_O1=B 1943
Quest_O1=C 1939
Quest_O1=D 1916
Ansver=A
Ansver=B
Ansver=C
вопрос около 50
Код для его загрузки:
Код:
//Quest номер вопроса 
//второй Quest это сам вопрос
Quests:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Test1.ini');
    Memo1.Lines.Add(Quests.ReadString('Quest' + IntToStr(IntNextQuest),'Quest' ,'Тест окончен'));
    Ansver:=(Quests.ReadString('Quest' + IntToStr(IntNextQuest),'Ansver','Тест окончен'));
Проблема в том что он грузит только вопросы, а варианты вопросов отказывается показывать, не знаю как написать загрузку всего вопроса с вариантами ответов

Последний раз редактировалось Stilet; 02.04.2015 в 06:46.
Pol1212 вне форума Ответить с цитированием
Старый 02.04.2015, 02:41   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Попробуйте использовать ReadSectionValues.
Streletz вне форума Ответить с цитированием
Старый 02.04.2015, 07:07   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Попробуйте читать то, что копипастите из интернетов.
Это всех гуглокодеров касается!!!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.04.2015, 09:33   #4
Pol1212
Пользователь
 
Регистрация: 22.05.2014
Сообщений: 23
По умолчанию

Что именно читать?, это был видео урок, я в нем разобрался теперь хочу под себя написать. Просто не понятно почему он только одну строку грузит а все остальные отказывается видеть. Пробовал все в одну строку писать, он выводит все подряд и разделить по строчкам не могу.
Pol1212 вне форума Ответить с цитированием
Старый 02.04.2015, 09:54   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Что именно читать?
Для на чала хотя бы справку по свойствам и методам TIniFile
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.04.2015, 09:55   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Потому что у тебя параметры имеют одинаковые имена. в INI файле имена одинаковые в пределах одной ветки-секции недопустимы, хоть и ошибку не дают.
Впрочем есть лэкарцтво:
Код:
Quests.ReadSectionValues('Quest' + IntToStr(IntNextQuest),Memo.Lines);
Ну или так:
Код:
st:=TStringList.Create do begin
Quests.ReadSectionValues('Quest' + IntToStr(IntNextQuest),st); 
for i:=0 to st.count-1 do Memo.Lines.Append(st.ValueFromIndex[i]);
st.free;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2015, 10:18   #7
Pol1212
Пользователь
 
Регистрация: 22.05.2014
Сообщений: 23
По умолчанию

Спасибо твой код помог, но нажав кнопку следующий вопрос у меня идет зацикливание на втором вопросе, и код читает мои ответы и выводит их:
Ansver=A
Ansver=B
Ansver=C

Как это можно исправить?

С зацикливанием справился мой косяк(, а вот что с ответами делать я хз, он их выводит на экран вместе с вопросами

Последний раз редактировалось Stilet; 02.04.2015 в 10:41.
Pol1212 вне форума Ответить с цитированием
Старый 02.04.2015, 10:41   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как это можно исправить?
Вынести ответы в отдельную секцию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2015, 10:46   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Как это можно исправить?
это исправлять нинада.
это нада выкинуть.
и написать свой хороший кодЪ.

Я прав?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.04.2015, 15:29   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

В таких случаях обычно заводят секцию CountXXX в которую пишут кол-во чего-либо, а потом в цикле от начального индекса (какой зададите, но удобнее всего 1) до Count читают ключи XXX+IntToStr(i)
т.е. для Вашего случая
Код:
Count = 3
Answer1=blah
Answer2=blah
Answer3=blah
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка ini файла Михаил Юрьевич Общие вопросы Delphi 7 20.11.2014 11:42
Загрузка txt файла в Memo FleXik Общие вопросы Delphi 3 14.12.2012 16:48
Загрузка из типизированного файла в memo Chicharrr Помощь студентам 36 12.05.2012 14:48
загрузка из файла ini в ListView DenisVoronov Компоненты Delphi 9 08.11.2010 20:16
Компонент Memo и работа с *.ini-файлами nerZEROn Общие вопросы Delphi 11 08.01.2009 16:31