<?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=416496&amp;view=findpost&amp;p=3817831</guid>
        <pubDate>Wed, 08 Jan 2020 13:34:12 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817831</link>
        <description><![CDATA[Gonarh: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416496&view=findpost&p=3817814'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>RusSun &#064; <time class="tag-quote__quoted-time" datetime="2020-01-08T11:24:30+03:00">08.01.20, 08:24</time></span><div class='quote '>Хм, я понял &quot;Gonarh&quot; хочет чтобы Kirilis2018,<br>
начал что-то делать, а не только писать односложные предложения :D</div></div><br>
:jokingly: Всё верно, притчу про рыбу и удочку не стоит забывать.]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817830</guid>
        <pubDate>Wed, 08 Jan 2020 12:56:49 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817830</link>
        <description><![CDATA[Cfon: Немного хардкора от Масты :D <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">uses Spring.Collections;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure ProcessList;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;const baza = TCollections.CreateList&#60;string&#62;([</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.01: 01.01.2020&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.02: 02.01.2020&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.03: 03.01.2020&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.04: 04.01.2020&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.05: 05.01.2020&#39;</div><div class="code_line">&nbsp;&nbsp;]);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;const config = TCollections.CreateList&#60;string&#62;([</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.01={text}21&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.02={text}34&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.03={text}70&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.04={text}72&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Doc#ver.05=71&#39;</div><div class="code_line">&nbsp;&nbsp;]);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;// lazy function</div><div class="code_line">&nbsp;&nbsp;const LazyConvert = function (AList: IList&#60;string&#62;; ADelim: string):</div><div class="code_line">&nbsp;&nbsp; &nbsp;IEnumerable&#60;TPair&#60;string, string&#62;&#62;</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Result := TEnumerable.Select&#60;string, TPair&#60;string, string&#62;&#62;(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;AList,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;function (s: string): TPair&#60;string, string&#62; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;var LA := s.Trim.Split(ADelim);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Result := TPair&#60;string, string&#62;.Create(LA[0], LA[1]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;const Output = TEnumerable.Select&#60;TPair&#60;string, string&#62;, string&#62;(</div><div class="code_line">&nbsp;&nbsp; &nbsp;LazyConvert(baza, &#39;:&#39;),</div><div class="code_line">&nbsp;&nbsp; &nbsp;function (p1: TPair&#60;string, string&#62;): string</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;var Ls: string;</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := p1.Key + &#39;:&#39; + p1.Value;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if LazyConvert(config, &#39;=&#39;).Any(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function (const p2: TPair&#60;string, string&#62;): Boolean</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ls := p2.Value;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Result := p1.Key = p2.Key;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Result := Result + Ls;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;// Output</div><div class="code_line">&nbsp;&nbsp;Output.ForEach(procedure (const s: string)</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Log(s); </div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">// OUTPUT</div><div class="code_line">//Doc#ver.01:01.01.2020{text}21</div><div class="code_line">//Doc#ver.02:02.01.2020{text}34</div><div class="code_line">//Doc#ver.03:03.01.2020{text}70</div><div class="code_line">//Doc#ver.04:04.01.2020{text}72</div><div class="code_line">//Doc#ver.05:05.01.202071</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
ПС. Код максимально оптимизирован, но еще можно оптимизировать через словари.]]></description>
        <author>Cfon</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817814</guid>
        <pubDate>Wed, 08 Jan 2020 08:24:30 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817814</link>
        <description><![CDATA[RusSun: Добрый день.<br>
Хм, я понял &quot;Gonarh&quot; хочет чтобы Kirilis2018,<br>
начал что-то делать, а не только писать односложные предложения :D <br>
<br>
Подитожим<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><br>
1 Первое получаем список из DocNN№ver.Num:От nn.nn.nnnn.<br>
2 Сортируем.<br>
3 Извлекаем условие для сравнения, ver.Num <br>
    (&quot;Parsim&quot; на пример до &quot;:&quot;)<br>
    &quot;Parsim&quot; на пример всё после &quot;№&quot;(Result от(Parsim на пример до &quot;:&quot;))<br>
  --&#62; список из ver.Num<br>
4 Получаем второй список.<br>
5 Идем в цикле по &quot;списку из ver.Num&quot; Если есть соответствие, то<br>
  &quot;то создается новый элемент &#39;Итогового списка&#39; &quot; (тут же удаляем из списка  &quot;списку из ver.Num&quot; данный элемент)<br>
  и когда мы пройдем все элементы, то в списке останется остаток из того на что не нашлось соответствия.<br>
Это сохраняем отдельно &quot;StrList~&quot;.SaveToFile(&#39;Остаток.txt&#39;);<br>
</div></div><br>
 :crazy:]]></description>
        <author>RusSun</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817810</guid>
        <pubDate>Wed, 08 Jan 2020 04:34:23 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817810</link>
        <description><![CDATA[Gonarh: см. моё предыдущее сообщение]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817797</guid>
        <pubDate>Tue, 07 Jan 2020 19:52:24 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817797</link>
        <description><![CDATA[Kirilis2018: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416496&view=findpost&p=3817794'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Gonarh &#064; <time class="tag-quote__quoted-time" datetime="2020-01-07T19:30:18+00:00">07.01.20, 19:30</time></span><div class='quote '>Код не универсален, если образцы в разнобой, то работать не будет.</div></div><br>
А как будет лучше сделать ?]]></description>
        <author>Kirilis2018</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817794</guid>
        <pubDate>Tue, 07 Jan 2020 19:30:18 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817794</link>
        <description><![CDATA[Gonarh: Код не универсален, если образцы в разнобой, то работать не будет.]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817789</guid>
        <pubDate>Tue, 07 Jan 2020 17:18:22 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817789</link>
        <description><![CDATA[RusSun: <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">function Parse2(S: string; const Separators: string): string;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;P: Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;P := Pos(Separators, S);</div><div class="code_line">&nbsp;&nbsp;if P = 0 then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Result := S;</div><div class="code_line">&nbsp;&nbsp; &nbsp;S := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;end</div><div class="code_line">&nbsp;&nbsp;else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Result := Copy(</div><div class="code_line">&nbsp;&nbsp; &nbsp;S,</div><div class="code_line">&nbsp;&nbsp; &nbsp;P+ Length(Separators),</div><div class="code_line">&nbsp;&nbsp; &nbsp;Length(S)- P+ Length(Separators)</div><div class="code_line">&nbsp;&nbsp; &nbsp;);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">StrList: TStringList;</div><div class="code_line">StrList2: TStringList;</div><div class="code_line">&nbsp;I:integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;StrList:=TStringList.Create;</div><div class="code_line">&nbsp;&nbsp;StrList.LoadFromFile(&#39;1.txt&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;StrList2:=TStringList.Create;</div><div class="code_line">&nbsp;&nbsp;StrList2.LoadFromFile(&#39;2.txt&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for I := 0 to StrList2.Count - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;StrList[I]:= StrList[I]+Parse2(StrList2[I],&#39;=&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;StrList2.Free;</div><div class="code_line">&nbsp;&nbsp;StrList.SaveToFile(&#39;3.txt&#39;);</div><div class="code_line">&nbsp;&nbsp;StrList.Free;</div><div class="code_line">&nbsp;&nbsp;memo1.lines.LoadFromFile(&#39;3.txt&#39;);</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>RusSun</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817767</guid>
        <pubDate>Tue, 07 Jan 2020 04:47:58 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817767</link>
        <description><![CDATA[Gonarh: Читаем файл Конфигурация.txt построчно, режем строку по разделителю &#39;=&#39;, по первому элементу ищем номер строки в файле База.txt, читаем её в переменную, конкатенируем со вторым элементом разрезки, результат пишем в Результат.txt]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817759</guid>
        <pubDate>Mon, 06 Jan 2020 19:26:44 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817759</link>
        <description><![CDATA[Kirilis2018: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=416496&view=findpost&p=3817757'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Gonarh &#064; <time class="tag-quote__quoted-time" datetime="2020-01-06T17:29:35+00:00">06.01.20, 17:29</time></span><div class='quote '>Можно</div></div><br>
Вопрос как ?]]></description>
        <author>Kirilis2018</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817757</guid>
        <pubDate>Mon, 06 Jan 2020 17:29:35 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817757</link>
        <description><![CDATA[Gonarh: Можно]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817755</guid>
        <pubDate>Mon, 06 Jan 2020 16:07:17 +0000</pubDate>
        <title>Склеить строки используя файл конфигураций</title>
        <link>https://forum.sources.ru/index.php?showtopic=416496&amp;view=findpost&amp;p=3817755</link>
        <description><![CDATA[Kirilis2018: Есть текстовый файл (База.txt) в котором подана вот такая информация:<br><br>Вот тут изменились условия то есть поиск конфигурации между знаками № и :<br><br>Doc12№ver.01:От 01.01.2020<br>Doc24№ver.02:От 02.01.2020<br>Doc15№ver.03:От 03.01.2020<br>Doc18№ver.04:От 04.01.2020<br>Doc22№ver.05:От 05.01.2020<br>А файл (Конфигурация.txt), в котором указаны конфигурации - выглядит вот так:<br><br>№ver.01=&#092;0021<br>№ver.02=&#092;0034<br>№ver.03=&#092;0070<br>№ver.04=&#092;0072<br>№ver.05=&#092;0871<br>Программа заходит в текстовый документ Конфигурация.txt и смотрит что написано напротив №ver.01, №ver.02, №ver.03, №ver.04,№ver.05: И подставляет результаты в файл (База.txt) выходя из конфигурации. На выходе получается текстовый файл - Результат.txt в котором информация сохранена уже в таком виде:<br><br>Doc12№ver.01:От 01.01.2020&#092;0021<br>Doc24№ver.02:От 02.01.2020&#092;0034<br>Doc15№ver.03:От 03.01.2020&#092;0070<br>Doc18№ver.04:От 04.01.2020&#092;0072<br>Doc22№ver.05:От 05.01.2020&#092;0871<br>Вот код и он работает все отлично - но: Как мне сохранить в отдельный файл те строки которые не подошли под конфигурацию ?.]]></description>
        <author>Kirilis2018</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	