<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3878155</guid>
        <pubDate>Sat, 08 Oct 2022 07:25:18 +0000</pubDate>
        <title>работа с не стандартным ini файлом</title>
        <link>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3878155</link>
        <description><![CDATA[SNDVOL32: @Volkogriz<br><br>Вы что разрабатываете программу для стихийных бедствий сша ??]]></description>
        <author>SNDVOL32</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3876441</guid>
        <pubDate>Mon, 19 Sep 2022 12:48:23 +0000</pubDate>
        <title>работа с не стандартным ini файлом</title>
        <link>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3876441</link>
        <description><![CDATA[Fr0sT: Именованием<br>Level1.VeterancyLevel = ...<br><br>или не изобретать велосипед и взять стандартное решение, например XML, JSON. Если так уж хочется простоты, то YAML]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3876102</guid>
        <pubDate>Wed, 14 Sep 2022 10:16:55 +0000</pubDate>
        <title>работа с не стандартным ini файлом</title>
        <link>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3876102</link>
        <description><![CDATA[macomics: 1) Вы можете привести формат к стандартному виду разделив повторяющиеся поля на вложенные секции например так<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">[ATKindjal]</div><div class="code_line">Score = 2</div><div class="code_line">DeployInf = TRUE</div><div class="code_line">House = Atreides</div><div class="code_line">StormDamage=74 &nbsp;// (1*64)+10</div><div class="code_line">StormDamage=10 //only damages is never picked up</div><div class="code_line">PrimaryBuilding = ATBarracks</div><div class="code_line">UnitGroup = FromBarracks</div><div class="code_line">Terrain = Rock, Sand, NBRock, InfRock, Ramp</div><div class="code_line">UpgradedPrimaryRequired = TRUE</div><div class="code_line">Cost = 150</div><div class="code_line">BuildTime = 144</div><div class="code_line">Size = 1</div><div class="code_line">Speed = 4.0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //game coord per update</div><div class="code_line">TurretAttach = ATKindjalGun, ATKindjalBigGun</div><div class="code_line">TurnRate = 0.2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//radians per tick</div><div class="code_line">Armour = None, 50, InfRock</div><div class="code_line">Health = 600</div><div class="code_line">Infantry = true</div><div class="code_line">//SoundSelected = Selected</div><div class="code_line">//SoundOrdered = Ordered</div><div class="code_line">//SoundID = 00</div><div class="code_line">ViewRange = 10</div><div class="code_line">AiFoot = TRUE</div><div class="code_line">TechLevel = 4</div><div class="code_line">ReinforcementValue = 3</div><div class="code_line">Crushable = TRUE</div><div class="code_line">ChaosEffect = SmallChaosFX</div><div class="code_line">HawkEffect = SmallHawkFX</div><div class="code_line">TastyToWorms = TRUE</div><div class="code_line">WormAttraction = 3</div><div class="code_line">CanMoveAnyDirection = TRUE</div><div class="code_line">CanBeDeviated = FALSE</div><div class="code_line">CanBeRepaired = FALSE</div><div class="code_line">AIThreat = 50</div><div class="code_line">&nbsp;</div><div class="code_line">[ATKindjal/LEVEL 1]</div><div class="code_line">// LEVEL 1 ----------------------------------</div><div class="code_line">VeterancyLevel = 2 &nbsp;// Score required</div><div class="code_line">Health = 800</div><div class="code_line">ExtraDamage = 50 &nbsp; &nbsp; &nbsp; &nbsp;// 50% more damage - applied to all weapons</div><div class="code_line">&nbsp;</div><div class="code_line">[ATKindjal/LEVEL 2]</div><div class="code_line">// LEVEL 2 ----------------------------------</div><div class="code_line">VeterancyLevel = 10</div><div class="code_line">CanSelfRepair = 1</div><div class="code_line">&nbsp;</div><div class="code_line">[ATKindjal/LEVEL 3]</div><div class="code_line">// LEVEL 3 ----------------------------------</div><div class="code_line">VeterancyLevel = 20</div><div class="code_line">Elite = TRUE</div><div class="code_line">//ExtraRange = 50 - removed // 50% more range</div><div class="code_line">ExtraDamage = 100 &nbsp; &nbsp; &nbsp; // 100% more damage - applied to all weapons</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
2) Вы можете написать собственный код работы с ini файлом, который учитывает особенности расположения данных.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp; PPIniFileEntry = ^PIniFileEntry;</div><div class="code_line">&nbsp;&nbsp; PIniFileData &nbsp; = ^TIniFileData;</div><div class="code_line">&nbsp;&nbsp; PIniFileEntry &nbsp;= ^TIniFileEntry;</div><div class="code_line">&nbsp;&nbsp; TIniFileData &nbsp; = packed record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;text: array of PChar;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;data: PIniFileEntry;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; TIniFileEntry &nbsp;= packed record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;next: PIniFileEntry;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;node: Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;item: Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;text: PChar;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// FileName - Строка с именем ini файла</div><div class="code_line">procedure LoadIniFile(FileName: String): Pointer;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp; defGROUP: PChar = &#39;common&#39;;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; ini: TextFile;</div><div class="code_line">&nbsp;&nbsp; idx, grp, i: Integer;</div><div class="code_line">&nbsp;&nbsp; str, val: String;</div><div class="code_line">&nbsp;&nbsp; pak: PIniFileData;</div><div class="code_line">&nbsp;&nbsp; itm: PIniFileEntry;</div><div class="code_line">&nbsp;&nbsp; lst: PPIniFileEntry;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; pak := new(pak);</div><div class="code_line">&nbsp;&nbsp; with pak^ do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;grp := Low(text) - 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;data := nil;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lst := @data;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength(text, 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;AssignFile(ini, FileName);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Reset(ini);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;while not EOF(ini) do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; ReadLn(ini, str);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; idx := Pos(&#39;//&#39;, str);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if idx &#62; 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;str := copy(str, Low(str), idx);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; str := trim(str);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Length(str) &#62; 0 then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (str[Low(str)] = &#39;[&#39;) and (str[High(str)] = &#39;]&#39;) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str := copy(str, Low(str) + 1, Length(str) - 2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; grp := High(text) + 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for i := Low(text) to High(text) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if text[i] = str then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; grp := i;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if grp &#62; High(text) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SetLength(text, Length(text) + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;text[grp] := PChar(copy(str, Low(str)));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; idx := Pos(&#39;=&#39;, str);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if idx &#62; 0 then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;val := copy(str, idx + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;str := copy(str, Low(str), idx);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if grp &#60; Low(text) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; grp := High(text) + 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for i := Low(text) to High(text) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if text[i] = defGROUP then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; grp := i;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if grp &#62; High(text) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SetLength(text, Length(text) + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;text[grp] := defGROUP;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;idx := High(text) + 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for i := Low(text) to High(text) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if text[i] = str then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;idx := i;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if idx &#62; High(text) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetLength(text, Length(text) + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text[idx] := PChar(copy(str, Low(str)));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new(itm);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;itm^.next := nil;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;itm^.node := grp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;itm^.item := idx;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;itm^.text := PChar(copy(val, Low(val));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lst^ := itm;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lst := @itm^.next;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;CloseFile(ini);</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; Result := pak;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">// aIni &nbsp; - Указатель полученный от LoadIniFile</div><div class="code_line">// aGroup - Строка с именем группы</div><div class="code_line">// aField - Строка с именем поля</div><div class="code_line">// aIndex - Порядковый номер вхождения поля в группу (для нескольких одноименных полей в группе)</div><div class="code_line">// &nbsp;{Как раз для вашего случая. LEVEL1 = 1, LEVEL2 = 2, LEVEL3 = 3}</div><div class="code_line">function GetValueByName(aIni: PIniFileData; aGroup, aField: String; aIndex: Integer): String;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; grp, itm, i, h: Integer;</div><div class="code_line">&nbsp;&nbsp; str, sec, fld: String;</div><div class="code_line">&nbsp;&nbsp; lst: PIniFileEntry;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; Result := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp; sec := lowercase(aGroup);</div><div class="code_line">&nbsp;&nbsp; fld := lowercase(aField);</div><div class="code_line">&nbsp;&nbsp; if not (aIni = nil) then with aIni^ do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;h := High(text);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;grp := j + 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;itm := j + 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for i := Low(text) to h do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; str := lowercase(text[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if str = sec then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;grp := i;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if str = fld then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;itm := i;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if (grp &#60;= h) and (itm &#60;= h) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if (grp &#60;= h) or (itm &#60;= h) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; lst := data;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; h := 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; while not (lst = nil) do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (lst^.node = grp) and (lst^.item = itm) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if h = aIndex then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Result := copy(lst^.text, Low(lst^.text));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end else inc(h);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lst := lst^.next;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">{Надеюст процедуру сохранения ini файла и освобождения памяти из под этой структуры с динамическим списком вы сможете написать сами}</div></ol></div></div></div></div>Код не проверял, написал в браузере, хотя должен работать. Но надеюсь с опечатками вы сами сможете справиться.]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3876076</guid>
        <pubDate>Wed, 14 Sep 2022 04:05:39 +0000</pubDate>
        <title>работа с не стандартным ini файлом</title>
        <link>https://forum.sources.ru/index.php?showtopic=429781&amp;view=findpost&amp;p=3876076</link>
        <description><![CDATA[Volkogriz: Доброе время суток&#33;<br>
Помогите пожалуйста разобраться.<br>
секция:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">[ATKindjal]</div><div class="code_line">Score = 2</div><div class="code_line">DeployInf = TRUE</div><div class="code_line">House = Atreides</div><div class="code_line">StormDamage=74 &nbsp;// (1*64)+10</div><div class="code_line">StormDamage=10 //only damages is never picked up</div><div class="code_line">PrimaryBuilding = ATBarracks</div><div class="code_line">UnitGroup = FromBarracks</div><div class="code_line">Terrain = Rock, Sand, NBRock, InfRock, Ramp</div><div class="code_line">UpgradedPrimaryRequired = TRUE</div><div class="code_line">Cost = 150</div><div class="code_line">BuildTime = 144</div><div class="code_line">Size = 1</div><div class="code_line">Speed = 4.0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //game coord per update</div><div class="code_line">TurretAttach = ATKindjalGun, ATKindjalBigGun </div><div class="code_line">TurnRate = 0.2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//radians per tick</div><div class="code_line">Armour = None, 50, InfRock</div><div class="code_line">Health = 600</div><div class="code_line">Infantry = true</div><div class="code_line">//SoundSelected = Selected</div><div class="code_line">//SoundOrdered = Ordered</div><div class="code_line">//SoundID = 00</div><div class="code_line">ViewRange = 10</div><div class="code_line">AiFoot = TRUE</div><div class="code_line">TechLevel = 4</div><div class="code_line">ReinforcementValue = 3</div><div class="code_line">Crushable = TRUE</div><div class="code_line">ChaosEffect = SmallChaosFX</div><div class="code_line">HawkEffect = SmallHawkFX</div><div class="code_line">TastyToWorms = TRUE</div><div class="code_line">WormAttraction = 3</div><div class="code_line">CanMoveAnyDirection = TRUE</div><div class="code_line">CanBeDeviated = FALSE</div><div class="code_line">CanBeRepaired = FALSE</div><div class="code_line">AIThreat = 50</div><div class="code_line">&nbsp;</div><div class="code_line">// LEVEL 1 ----------------------------------</div><div class="code_line">VeterancyLevel = 2 &nbsp;// Score required</div><div class="code_line">Health = 800</div><div class="code_line">ExtraDamage = 50 &nbsp; &nbsp; &nbsp; &nbsp;// 50% more damage - applied to all weapons</div><div class="code_line">&nbsp;</div><div class="code_line">// LEVEL 2 ----------------------------------</div><div class="code_line">VeterancyLevel = 10</div><div class="code_line">CanSelfRepair = 1</div><div class="code_line">&nbsp;</div><div class="code_line">// LEVEL 3 ----------------------------------</div><div class="code_line">VeterancyLevel = 20</div><div class="code_line">Elite = TRUE</div><div class="code_line">//ExtraRange = 50 - removed // 50% more range</div><div class="code_line">ExtraDamage = 100 &nbsp; &nbsp; &nbsp; // 100% more damage - applied to all weapons</div></ol></div></div></div></div><br>
<br>
Видно переменные повторяются: //LEVEL 1 , // LEVEL 2, // LEVEL 3 <br>
помогите вывести отдельно  //LEVEL 1 , // LEVEL 2, // LEVEL 3 например в разные 3 memo =)<br>
С уважением,<br>
Volkogriz&#33;]]></description>
        <author>Volkogriz</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	