|
Сравнение 2х массивов | ☑ | ||
|---|---|---|---|---|
|
0
ne6o
20.12.07
✎
11:07
|
Как сравнить 2 массива, причем если первый состоит от "яблоко, груша, банан" а второй из "груша, банан, яблоко" то считалось что они равны
|
|||
|
1
Безработынй
20.12.07
✎
11:08
|
отсортировать и сравнить в цикле до первого не совпадения
|
|||
|
2
ne6o
20.12.07
✎
11:15
|
А есть средства сортировки элементов массива в 1С 8.1? Иль руками делать?
|
|||
|
3
Defender aka LINN
20.12.07
✎
11:21
|
(2) Можно в СписокЗначений выгрузить.
|
|||
|
4
ne6o
20.12.07
✎
11:23
|
Массив1 = Новый Массив; Массив2 = Новый Массив;
Массив1.Добавить(Яблоко); Массив1.Добавить(Груша); Массив1.Добавить(Банан); Массив2.Добавить(Груша); Массив2.Добавить(Банан); Массив2.Добавить(Яблоко); Есть что-нибудь типа "Массив.Сортировка()" ? |
|||
|
5
Вектор3
20.12.07
✎
11:26
|
(1) чуточку оффтоп , но всё же - а кто знает, какой алгоритм применяет 1С для сортировки больших массивов???
|
|||
|
6
Defender aka LINN
20.12.07
✎
11:26
|
Читай (4)
|
|||
|
7
ne6o
20.12.07
✎
11:29
|
(3) Типа такого?
СписокЗнач = Новый СписокЗначений; СписокЗнач.ЗагрузитьЗначения(Массив1); СписокЗнач.СортироватьПоЗначению(НаправлениеСортировки.Возр); Массив1.Очистить(); Массив1 = СписокТиповЦен.ВыгрузитьЗначения(); |
|||
|
8
ne6o
20.12.07
✎
11:30
|
Сорри, т.е.
СписокЗнач = Новый СписокЗначений; СписокЗнач.ЗагрузитьЗначения(Массив1); СписокЗнач.СортироватьПоЗначению(НаправлениеСортировки.Возр); Массив1.Очистить(); Массив1 = СписокЗнач.ВыгрузитьЗначения(); |
|||
|
9
Defender aka LINN
20.12.07
✎
11:32
|
угу
|
|||
|
10
Вектор3
20.12.07
✎
11:32
|
(6) я понимаю, что можно написать СписокЗначений.СортироватьПоЗначению
Но меня интересует, как он сортирует это дело???? если простым перебором - то это одно, а если быстрой сортировкой - то это , извините совсем другое дело... |
|||
|
11
Defender aka LINN
20.12.07
✎
11:33
|
(10) ХЗ :)
|
|||
|
12
hhhh
20.12.07
✎
11:34
|
(8) лучше уж сразу используй списки значений. Чего ты на массивы запал?
|
|||
|
13
Безработынй
20.12.07
✎
11:42
|
Я всегда использую ТЗ. Массивы и списки это урезанные ТЗ мне кажется. Тама и сортировать и сворачивать моно. Чё паритесь с этими массивами и списками.
|
|||
|
14
Биньковский Виталий
20.12.07
✎
11:42
|
а так прокатит?
Для каждого ЭлементМассива1 Из Массив1 Цикл Если Массив2.Найти(ЭлементМассива1) = Неопределено Тогда Возврат Ложь; КонецЕсли; Возврат Истина; КонецЦикла; |
|||
|
15
Defender aka LINN
20.12.07
✎
11:43
|
(13) Массив - другое. А СписокЗначений таки да, ТЗ с предопределенными колонками :)
|
|||
|
16
Defender aka LINN
20.12.07
✎
11:44
|
(14) А если есть одинаковые элементы? А если Массив2 больше?
|
|||
|
17
Вектор3
20.12.07
✎
11:44
|
(13) неэстетично))))
|
|||
|
18
hhhh
20.12.07
✎
11:48
|
(10) просто берут и сортируют. Поэтому и выполняется по 2 часа.
|
|||
|
19
Вектор3
20.12.07
✎
11:55
|
(18) перебором????? мама дорогая...
|
|||
|
20
Immortal
20.12.07
✎
12:02
|
запросом можно ЛЕВОЕ СОЕДИНЕНИЕ ,ОБЪЕДИНИТЬ или что ты там хочешь где в качестве
таблицы выступают два твоих массива. |
|||
|
21
Immortal
20.12.07
✎
12:02
|
таблицы читать как таблиц
|
|||
|
22
ne6o
20.12.07
✎
12:22
|
В массиве храню все используемые роли в системе
Массив = Новый Массив; k=0; Для Каждого j Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл k=k+1; Для каждого л из j.роли Цикл Если k=1 Тогда Массив.Добавить(л); КонецЕсли; Если НЕ Массив.Найти(л)=Неопределено Тогда Продолжить; Иначе Массив.Добавить(л); КонецЕсли; КонецЦикла; КонецЦикла Хочу выделить пользователей у которых установленны одинаковые наборы прав Например, всех у кого назначены роли "пользователь" и "менеджер по продажам" В ещё одном массиве держу набор ролей у конкретного пользователя Для каждого л Из j.роли Цикл РолиПольз.Добавить(л); КонецЦикла; |
|||
|
23
ne6o
20.12.07
✎
13:05
|
МассивРолей = Новый Массив;
РолиПольз = Новый Массив; Для Каждого j Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл Сообщить(j.ПолноеИмя); Для каждого л Из j.роли Цикл РолиПольз.Добавить(л); Сообщить(л) КонецЦикла; МассивРолей.Добавить(РолиПольз); РолиПольз.Очистить(); КонецЦикла; Сообщить(МассивРолей[3]); asd = МассивРолей[3]; Для каждого ы Из asd Цикл Сообщить(ы); КонецЦикла; Не выводит элементы ни одной роли (ы) Почему? |
|||
|
24
Безработынй
20.12.07
✎
13:20
|
Перед выполнением вот этой команды РолиПольз.Очистить(); посмотри что в массиве МассивРолей. А затем после вот этой команды РолиПольз.Очистить(); посмотри что будет в этом массиве МассивРолей. А потом в ЖКК почитай про работу с массивами. А вапще работай ка с ТЗ. Классная вещь.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |