Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.09.2022, 07:54
Аватар для Volkogriz
Volkogriz Volkogriz вне форума
Прохожий
 
Регистрация: 02.11.2007
Сообщения: 5
Репутация: 10
Восклицание работа с не стандартным ini файлом , повтор переменных в одной секции

Доброе время суток!
Помогите пожалуйста разобраться.
секция:
PHP код:
[ATKindjal]
Score 2
DeployInf 
TRUE
House 
Atreides
StormDamage
=74  // (1*64)+10
StormDamage=10 //only damages is never picked up
PrimaryBuilding ATBarracks
UnitGroup 
FromBarracks
Terrain 
RockSandNBRockInfRockRamp
UpgradedPrimaryRequired 
TRUE
Cost 
150
BuildTime 
144
Size 
1
Speed 
4.0                     //game coord per update
TurretAttach ATKindjalGunATKindjalBigGun
TurnRate 
0.2                  //radians per tick
Armour None50InfRock
Health 
600
Infantry 
true
//SoundSelected = Selected
//SoundOrdered = Ordered
//SoundID = 00
ViewRange 10
AiFoot 
TRUE
TechLevel 
4
ReinforcementValue 
3
Crushable 
TRUE
ChaosEffect 
SmallChaosFX
HawkEffect 
SmallHawkFX
TastyToWorms 
TRUE
WormAttraction 
3
CanMoveAnyDirection 
TRUE
CanBeDeviated 
FALSE
CanBeRepaired 
FALSE
AIThreat 
50
 
// LEVEL 1 ----------------------------------
VeterancyLevel 2  // Score required
Health 800
ExtraDamage 
50        // 50% more damage - applied to all weapons
 
// LEVEL 2 ----------------------------------
VeterancyLevel 10
CanSelfRepair 
1
 
// LEVEL 3 ----------------------------------
VeterancyLevel 20
Elite 
TRUE
//ExtraRange = 50 - removed // 50% more range
ExtraDamage 100       // 100% more damage - applied to all weapons 
Видно переменные повторяются: //LEVEL 1 , // LEVEL 2, // LEVEL 3
помогите вывести отдельно //LEVEL 1 , // LEVEL 2, // LEVEL 3 например в разные 3 memo =)
С уважением,
Volkogriz!
Ответить с цитированием
  #2  
Старый 14.09.2022, 19:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,064
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, для начала, это не well-formed ini файл.
Т.е. я подозреваю, что стандартыми средствами он не считается правильно.

По поводу того, как его прочитать.
В принципе, если стркутура фиксированная, то это можно сделать достаточно просто.
Код:
var
  sl : TStringList;
  I : Integer;
  tgt : TMemo;
begin
  tgt  := Nil;
  sl := TStringList.Create;
  try
    sl.LoadFromFile(...);
    For I := 0 To sl.count-1 Do
      Begin
        If Pos('// LEVEL 1',sl[i] > 0 Then tgt := Memo1
        Else If Pos('// LEVEL 2',sl[i] > 0 Then tgt := Memo2
        Else If Pos('// LEVEL 3',sl[i] > 0 Then tgt := Memo3
        Else If tgt <> nil Then tgt.Lines.Add(sl[i]);
      End;
  finally
    sl.free;
  end;
end;

Этот код должен считать именно представленную структуру.
Если стркутура изменится, то код перестанет работать правильно, но идея, надеюсь, понятна.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:52.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter