<?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=Tab.LocateEx</id>
	<title>Tab.LocateEx - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=Tab.LocateEx"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Tab.LocateEx&amp;action=history"/>
	<updated>2026-04-04T09:40:59Z</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=Tab.LocateEx&amp;diff=5144&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Tab.LocateEx&amp;diff=5144&amp;oldid=prev"/>
		<updated>2025-12-27T17:07:37Z</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 17:07, 27 December 2025&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=Tab.LocateEx&amp;diff=5143&amp;oldid=prev</id>
		<title>1&gt;Admin: Created page with &quot;{{infobox function |name=LocateEx |object=Таблица |caption=Поиск в ячейках |type=1 |status=2 |db=0 |exception=Неверное имя столбца,...&quot;</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Tab.LocateEx&amp;diff=5143&amp;oldid=prev"/>
		<updated>2025-12-19T06:13:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{infobox function |name=LocateEx |object=&lt;a href=&quot;/index.php/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0&quot; title=&quot;Таблица&quot;&gt;Таблица&lt;/a&gt; |caption=Поиск в ячейках |type=1 |status=2 |db=0 |exception=Неверное имя столбца,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox function&lt;br /&gt;
|name=LocateEx&lt;br /&gt;
|object=[[Таблица]]&lt;br /&gt;
|caption=Поиск в ячейках&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=0&lt;br /&gt;
|exception=Неверное имя столбца, невозможно превратить в число, строку&lt;br /&gt;
|visual=0}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Объекты]]&lt;br /&gt;
* [[Таблица]]}}&lt;br /&gt;
Функция производит поиск заданного списком столбцов количества значений в таблице. Поиск начинается со строки, указанной в переменной второго аргумента или с первой строки, если аргумент пропущен. Поиск может принимать во внимание факт того, что таблица сортирована по всем столбцам поиска по неубыванию, что может значительно ускорить нахождение значения. Если значение найдено, индекс строки где оно было найдено, возвращается в результате функции и в переменной второго аргумента, если она задана. Если значение не было найдено, функция возвращает ноль и переменная не изменяется.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|Tab.}}'''LocateEx'''(''&amp;lt;Список наименований столбцов поиска через запятую (STRING)&amp;gt;''{{OptionalByRef|,&amp;lt;Начальный индекс поиска, результирующий индекс (INT)&amp;gt;}}{{Optional|,&amp;lt;Значение поиска столбца 1&amp;gt;,&amp;lt;Значение поиска столбца 2&amp;gt;...,&amp;lt;Таблица сортирована по столбцам поиска (INT)&amp;gt;}}):''&amp;lt;Индекс найденной строки таблицы (INT)&amp;gt;''&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Список наименований столбцов поиска через запятую (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Строка содержит список наименований столбцов поиска через запятую. Регистр наименований не имеет значения. Каждый заданный столбец должен присутствовать в таблице.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Начальный индекс поиска, результирующий индекс (INT)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}}{{ByRef}} Числовой аргумент, задающий начальный индекс строки поиска. Если аргумент является переменной, и значение было найдено, переменная будет обновлена индексом найденной строки.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Значение поиска столбца ?&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Произвольные значения, которые необходимо найти в таблице в указанных в первом аргументе столбцах поиска. Количество аргументов должно совпадать с количеством столбцов.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Таблица сортирована по столбцам поиска (INT)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Возможные значения 0 и 1. Если таблица была предварительно отсортирована по всем столбцам поиска по неубыванию (т.е. предварительно выполнена конструкция &amp;lt;code&amp;gt;aTab.Sort(&amp;lt;Столбец1,Столбец2...&amp;gt;)&amp;lt;/code&amp;gt;, либо для заполнения таблицы вызывалась функция &amp;lt;code&amp;gt;aTab.AddLineSorted(&amp;lt;Столбец1,Столбец2...&amp;gt;,...)&amp;lt;/code&amp;gt;), будет происходить поиск с учетом сортировки (ускорение). Пример сравнения скорости работы функции для сортированных и не сортированных таблиц см. ниже. '''Важно''': если таблица не была отсортирована по столбцам поиска, сортированный поиск не будет работать корректно.&lt;br /&gt;
&lt;br /&gt;
==== Возвращаемое значение ====&lt;br /&gt;
Возвращается индекс найденной строки, если строка со всеми значениями была найдена, иначе возвращается ноль.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Создается и заполняется таблица значений&lt;br /&gt;
aTab:=Tab.Create(&amp;quot;b1,b2,b3,b4&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
aTab.AddLine(&amp;quot;b1,b2,b3,b4&amp;quot;,1,2,3,4);&lt;br /&gt;
aTab.AddLine(&amp;quot;b1,b2,b3,b4&amp;quot;,2,2,3,33);&lt;br /&gt;
aTab.AddLine(&amp;quot;b1,b2,b3,b4&amp;quot;,3,5,5,4);&lt;br /&gt;
aTab.AddLine(&amp;quot;b1,b2,b3,b4&amp;quot;,4,2,3,4);&lt;br /&gt;
aTab.AddLine(&amp;quot;b1,b2,b3,b4&amp;quot;,4,2,3,77);&lt;br /&gt;
aTab.AddLine(&amp;quot;b1,b2,b3,b4&amp;quot;,5,2,3,4);&lt;br /&gt;
&lt;br /&gt;
i:=0;&lt;br /&gt;
While aTab.LocateEx(&amp;quot;b2,b3&amp;quot;,i,2,3)&amp;gt;0 Do&lt;br /&gt;
  Message(&amp;quot;Найдена строка &amp;quot;+i);&lt;br /&gt;
  i:=i+1;&lt;br /&gt;
EndDo;&lt;br /&gt;
&lt;br /&gt;
//Будет выведено последовательно:&lt;br /&gt;
//Найдена строка 1&lt;br /&gt;
//Найдена строка 2&lt;br /&gt;
//Найдена строка 4&lt;br /&gt;
//Найдена строка 5&lt;br /&gt;
//Найдена строка 6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Сравнение скорости работы функций с сортировкой и функций без сортировки ===&lt;br /&gt;
{{Пример поиска множества значений в сортированных таблицах}}&lt;/div&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>