Имя: Пароль:
1C
1С v8
Поиск в массиве структур
,
0 Про100Филя
 
08.09.15
16:30
Добрый вечер. Есть массив, в котором структура из 3-х ключей/значений. Необходимо сделать поиск в массиве по двум ключам.
Ничего кроме перебора в голову не приходит. Посоветуйте правильный алгоритм.
1 Aceforg
 
08.09.15
16:32
Бинарный поиск
2 butterbean
 
08.09.15
16:33
перебирай
3 Chikko
 
08.09.15
16:33
Перебором только.
4 poligraf
 
08.09.15
16:33
(0) положить все в таблицу с тремя колонками, не?
5 Принт
 
08.09.15
16:33
Данные упорядочены?
6 poligraf
 
08.09.15
16:33
(1) для бинарного же надо как-то упорядочить.
7 butterbean
 
08.09.15
16:35
(0) у тебя массив структур случайно не из-за передач между клиентом/сервером?
8 Про100Филя
 
08.09.15
16:38
(1)(5)(6) Идут хаотично.
(4) Ну тогда стоит вопрос как это "чудо" выгрузить в таблицу не перебором)
(7) Нет обычные формы.
9 poligraf
 
08.09.15
16:40
(8) переписать алгоритмы, которые привели к массиву структур:)

Может через сериализацию...
10 Про100Филя
 
08.09.15
16:47
(9) Да переписать все придется.
Поиск по массиву нужен для изменения найденных данных. Массив потом дальше идет. Так что тут самый быстрый вариант все переписать(
11 Chikko
 
08.09.15
16:47
Воткни перед каждой структурой в массив "ключ", по нему и ищи индекс+1. если не помешает в других кусках кода.
12 Про100Филя
 
08.09.15
16:51
(11) Поиск по ссылке и строке, искомый индекс при поиске неизвестен(Может быть любой).
13 Chikko
 
08.09.15
16:57
(12) Не оч понял.
м.Вставить("Ключ1");
м.Вставить(Новый Структура("Ключ1", Ссылка1));
индекс "Ключ1" найти можно.
14 Живой Ископаемый
 
08.09.15
17:00
2(13) И как искать?
15 Chikko
 
08.09.15
17:04
(14) м.Найти()
а где узнать "Ключ1" - хз, но в переборе-то как-то его нати собирались, значит известен.
16 Живой Ископаемый
 
08.09.15
17:10
в переборе мы сразу получаем пару ключ и значение...
Но ок, нашли мы "Ключ1" - и как нам теперь получить следующий (якобы за ним) ключ, который является нашей структурой?
17 Живой Ископаемый
 
08.09.15
17:11
а, понял... то есть вставляем в массив... м...
18 Chikko
 
08.09.15
17:11
Получим по индекс+1 от "Ключ1"
19 Masquerade
 
08.09.15
17:35
(0)
Ну... 1С под другое заточен. У вас задача неправильная.
20 Про100Филя
 
08.09.15
17:43
(19) неправильный мед, неправильные пчелы.©
2 + 2 = 3.9999999999999999999999999999999...