<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=Template%3ATearStr_vs_GetSubStr</id>
	<title>Template:TearStr vs GetSubStr - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=Template%3ATearStr_vs_GetSubStr"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Template:TearStr_vs_GetSubStr&amp;action=history"/>
	<updated>2026-04-04T13:01:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=Template:TearStr_vs_GetSubStr&amp;diff=3712&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Template:TearStr_vs_GetSubStr&amp;diff=3712&amp;oldid=prev"/>
		<updated>2021-02-07T06:56:27Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:56, 7 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Template:TearStr_vs_GetSubStr&amp;diff=3711&amp;oldid=prev</id>
		<title>Admin at 09:58, 21 April 2019</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Template:TearStr_vs_GetSubStr&amp;diff=3711&amp;oldid=prev"/>
		<updated>2019-04-21T09:58:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Функции [[TearStr]] и [[GetSubStr]] имеют сходное предназначение и используются, как универсальные средства для разбора строк. Однако использование ''GetSubStr'' заставляет создавать дополнительную переменную, что усложняет текст программы. Тем не менее, плюсом ''GetSubStr'' явлется то, что исходная строка не будет изменена, потенциально, отменяя необходимость дублирования исходной строки в дополнительной переменной, если есть необходимость сохранить ее начальное значение. Выбор той функции, которую выгоднее использовать в определенной ситуации, остается за программистом. Обе функции оптимизированы по скорости исполнения и для работы с большими строками. Ниже дан замер производительности для процессора i5 при сравнительно одинаковых условиях.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Randomize(1);&lt;br /&gt;
//Создание длинной строки, разделенной строками _NEWLINE&lt;br /&gt;
аСтр:=&amp;quot;&amp;quot;;&lt;br /&gt;
For i:=1 To 1000000 Do&lt;br /&gt;
  AppendStringToBufferedString(аСтр,Str(Random(1000000))+_NEWLINE);&lt;br /&gt;
EndDo;&lt;br /&gt;
&lt;br /&gt;
//Для текущего алгоритма генерации псевдослучайных чисел, будет выведено 7888988&lt;br /&gt;
Message(&amp;quot;Длина исходной строки: &amp;quot;+Length(аСтр));&lt;br /&gt;
//Аллоцируем все переменные заранее&lt;br /&gt;
i:=1;&lt;br /&gt;
j:=length(аСтр);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ProfilerClear();&lt;br /&gt;
ProfilerStart();&lt;br /&gt;
//Используется разбор длинной строки с помощью GetSubStr&lt;br /&gt;
While i&amp;lt;=j Do&lt;br /&gt;
  Стр2:=GetSubStr(аСтр,i,_NEWLINE);&lt;br /&gt;
EndDo;&lt;br /&gt;
&lt;br /&gt;
//Используется разбор длинной строки с помощью TearStr&lt;br /&gt;
While аСтр&amp;lt;&amp;gt;&amp;quot;&amp;quot; Do&lt;br /&gt;
  Стр2:=TearStr(аСтр,_NEWLINE);&lt;br /&gt;
EndDo;&lt;br /&gt;
ProfilerStop();&lt;br /&gt;
DebugBreak;&lt;br /&gt;
Message(&amp;quot;Done!&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Замер показывает, что строка &amp;lt;code&amp;gt;Стр2:=TearStr(аСтр,_NEWLINE);&amp;lt;/code&amp;gt;, выполнявшаяся 1 млн. раз, заняла время в 2.2 сек, тогда как &amp;lt;code&amp;gt;Стр2:=GetSubStr(бСтр,i,_NEWLINE);&amp;lt;/code&amp;gt; потратила 2.589 секунды времени. Это значит, что в данном примере функция GetSubStr выполнялась примерно на 17.7% медленнее.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>