Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по ини файлу, Несколько одинаковых ключей в одной секц 
:(
    Опции темы
Volkogriz
  Дата 8.12.2012, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 16.9.2007

Репутация: 1
Всего: 1



Доброе время суток!
Проблема такая, есть ини файл к примеру вот его содержание:

Код

[ATSniper]
Score = 2
House = Atreides
StormDamage=74    
PrimaryBuilding = ATBarracks
UnitGroup = FromBarracks
Terrain = Rock, Sand, NBRock, InfRock, Ramp
Cost = 150
BuildTime = 99
Size = 1
Speed = 6.0                        
TurretAttach = ATSniperGun 
TurnRate = 0.2                    
Armour = None, 50, InfRock
Health = 600
Infantry = true
CanBeSuppressed = TRUE
//SoundSelected = Selected
//SoundOrdered = Ordered
//SoundID = 6
ViewRange = 15
AiFoot = TRUE
TechLevel = 2
ReinforcementValue = 2
Crushable = TRUE
ChaosEffect = SmallChaosFX
HawkEffect = SmallHawkFX
TastyToWorms = TRUE
WormAttraction = 3
CanMoveAnyDirection = TRUE
CanBeDeviated = FALSE
CanBeRepaired = FALSE
AIThreat = 30
//Вот отсюда начинаются пробламмы
// LEVEL 1 ----------------------------------
VeterancyLevel = 4        
ExtraArmour = 50

// LEVEL 2 ----------------------------------
VeterancyLevel = 12
CanSelfRepair = 1

// LEVEL 3 ----------------------------------
VeterancyLevel = 30
Elite = TRUE
StealthedWhenStill = TRUE

Возможно ли 
разделить и загрузить напремер
Код

значения ключа  LEVEL 1 VeterancyLevel  в едит 1 
значения ключа  LEVEL 2 VeterancyLevel  в едит 2 
значения ключа  LEVEL 3 VeterancyLevel  в едит 3 


Зарание благодарю!
С уважением,
Volkogriz!

Это сообщение отредактировал(а) Volkogriz - 8.12.2012, 07:24
--------------------
("`-''-/").___..--''"`-._`6_6  ) ,,,`-.  ( ''' ).` "_-.__.')(_Y_.)'  ._''' )  `._ `. ``-.__'.-'_..`--'_..-_/'''/--'_.' ,'(il).-'''''(li).'  ((!.-'
PM MAIL ICQ   Вверх
ZBugz
Дата 8.12.2012, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Можно smile
В цикл загони и грузи и сохраняй
PM MAIL   Вверх
Volkogriz
Дата 8.12.2012, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 16.9.2007

Репутация: 1
Всего: 1



Пример можно чегото не пойму как цикл здесь создать именно в секции(
--------------------
("`-''-/").___..--''"`-._`6_6  ) ,,,`-.  ( ''' ).` "_-.__.')(_Y_.)'  ._''' )  `._ `. ``-.__'.-'_..`--'_..-_/'''/--'_.' ,'(il).-'''''(li).'  ((!.-'
PM MAIL ICQ   Вверх
ZBugz
Дата 8.12.2012, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Цитата(Volkogriz @ 8.12.2012,  07:58)
Пример можно чегото не пойму как цикл здесь создать именно в секции(

Пример не скажу, delphi of нету, нео вот кусок кода.
Т.е. колличество секций ты всегда получишь Ini.ReadSections и загонишь TSringList 
Код

procedure TMainForm.LoadTask(F: WideString);
Var
 I: Integer;
 SL: TStringList;
 Li: TListItem;
Begin
 Try
  OpenIniFile(F);
   SL := TStringList.Create;
    Ini.ReadSections(SL);
     if SL.Count > 0 then
      for I := 0 to SL.Count - 1 do


Ну а далее, зная колличество секций, читай их в цикле и заполняй данные
PM MAIL   Вверх
northener
Дата 9.12.2012, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата

Несколько одинаковых ключей в одной секции "ини файла"

- мягко говоря очень неудачная идея. Так как такой файл перестаёт быть "ини файлом". Ибо к этим ключам неприменимы стандартные методы класса TIniFile (ReadXXX, WriteXXX, DeleteKey). Так зачем тогда использовать именно "ини файл" для хранения данной информации? Не лучше ли придумать собственную структуру файла для записи и чтения этих данных?

Ну а если всё же хочется использовать TIniFile (ну или его аналог для рабты с реестром TRegIniFile), то что мешает создать секции с именами "LEVEL 1", "LEVEL 2", "LEVEL 3" и т.д.?


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Volkogriz
Дата 9.12.2012, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 16.9.2007

Репутация: 1
Всего: 1



Спасибо ZBugz!
Дело в том что файл не мой а игравой,
там таких секций больше сотни, 
и кроме этой одной проблеммы больше пака не возникло проблем)
--------------------
("`-''-/").___..--''"`-._`6_6  ) ,,,`-.  ( ''' ).` "_-.__.')(_Y_.)'  ._''' )  `._ `. ``-.__'.-'_..`--'_..-_/'''/--'_.' ,'(il).-'''''(li).'  ((!.-'
PM MAIL ICQ   Вверх
ZBugz
Дата 9.12.2012, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Цитата(Volkogriz @ 9.12.2012,  08:22)
Спасибо ZBugz!
Дело в том что файл не мой а игравой,
там таких секций больше сотни, 
и кроме этой одной проблеммы больше пака не возникло проблем)

Пожалуйста. 
В твоем случае даже удобно будет так написать. 
Тот пример, что я привел выше, это кусок кода в котором я сохраняю строки TListView и значения колонок
Т.е. Строка это секция, а ключи это столбцы. Ключи кстати тоже в цикле читаю. В итоге хоть 10000 записей пиши, все быстро работает. 
PM MAIL   Вверх
Volkogriz
Дата 9.12.2012, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 16.9.2007

Репутация: 1
Всего: 1



Попробую, ещё раз благодарю!
--------------------
("`-''-/").___..--''"`-._`6_6  ) ,,,`-.  ( ''' ).` "_-.__.')(_Y_.)'  ._''' )  `._ `. ``-.__'.-'_..`--'_..-_/'''/--'_.' ,'(il).-'''''(li).'  ((!.-'
PM MAIL ICQ   Вверх
fatalcs
Дата 22.12.2012, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Не создавайте лишние пробемы. Это не INI-файл. И TIniFile использовать тут не нужно. Грузите всё это в TStringList и парсите файл построчно.
PM MAIL ICQ   Вверх
superVad
Дата 22.12.2012, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(fatalcs @  22.12.2012,  09:18 Найти цитируемый пост)
Не создавайте лишние пробемы. Это не INI-файл. И TIniFile использовать тут не нужно. Грузите всё это в TStringList и парсите файл построчно.

Чего там парсить. Поставить NameValueSeparator := '=' и обращаться по Names, Values обращаться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1319 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.