Форум по 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 
= Rock, Sand, NBRock, InfRock, Ramp
UpgradedPrimaryRequired 
= TRUE
Cost 
= 150
BuildTime 
= 144
Size 
= 1
Speed 
= 4.0                     //game coord per update
TurretAttach = ATKindjalGun, ATKindjalBigGun
TurnRate 
= 0.2                  //radians per tick
Armour = None, 50, InfRock
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,116
Версия 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, время: 06:35.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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