|
Узнать позицию в списке значений по представлению | ☑ | ||
|---|---|---|---|---|
|
0
1Сергей
26.04.11
✎
15:54
|
Имеется список значений. В него методом Установить занесены некоторые значения (т.е. по представлению). Мне нужно найти позицию (номер строки) по определенному представлению. Такое возможно без перебора?
Например; СЗ=СоздатьОбъект("СписокЗначений"); СЗ.Установить("Планета",Земля); СЗ.Установить("ГравитационнаяПостоянная",9.8); СЗ.Установить("ЕстесвенныйСпутник",Луна.ТекущийЭлемент()); И, допустим, надо узнать Порядковый номер для "ГравитационнаяПостоянная". Как? |
|||
|
1
Cthulhu
26.04.11
✎
15:55
|
перебором.
|
|||
|
2
Cthulhu
26.04.11
✎
15:55
|
только.
|
|||
|
3
1Сергей
26.04.11
✎
15:56
|
А удалить значение тоже не получится, не зная порядковый номер?
|
|||
|
4
Рэйв
26.04.11
✎
15:57
|
Получить
Получить значение элемента по указанному представлению. Синтаксис: Получить(<Строка>) Англоязычный синоним: Get Параметры: <Строка> Строковое выражение, содержащее задаваемое символьное представление получаемого значения. Возвращаемое значение: Полученное значение из списка. Описание: Метод Получить возвращает значение по указанному представлению. Если значения с таким представлением нет, то возвращается пустое значение. Пример: ОпредЗнач = Спис.Получить("ОпредПредст"); |
|||
|
5
Mikeware
26.04.11
✎
15:57
|
НайтиЗначение(Получить("ГравитационнаяПостоянная"))
|
|||
|
6
1Сергей
26.04.11
✎
15:57
|
(5) значения могут повторяться ведь
|
|||
|
7
Ёпрст
гуру
26.04.11
✎
15:58
|
(0)
Позиция = СЗ.НайтиЗначение(СЗ.Получить("ГравитационнаяПостоянная")); |
|||
|
8
1Сергей
26.04.11
✎
15:58
|
(7) см (6)
|
|||
|
9
Mikeware
26.04.11
✎
15:58
|
Хотя, имхо, в списке значений "номер строки" не должен иметь смысла. СЗ - своего рода ассоциативный массив
|
|||
|
10
Рэйв
26.04.11
✎
15:58
|
+ну порядковый номер узнать через НайтиЗначение потом
|
|||
|
11
1Сергей
26.04.11
✎
16:00
|
(9) да, мне ваще-то. Удалить надо по определенному представлению
|
|||
|
12
Рэйв
26.04.11
✎
16:00
|
(6)Тогда без перебора никак.
|
|||
|
13
1Сергей
26.04.11
✎
16:00
|
а удалить не зная номер строки никак
|
|||
|
14
Mikeware
26.04.11
✎
16:01
|
(11)Ну тогда через ВСтрокуСРазделителями
|
|||
|
15
GreyK
26.04.11
✎
16:04
|
(6) Не могут повторяться, ты же методом установить делал.
|
|||
|
16
1Сергей
26.04.11
✎
16:06
|
(15)
СЗ.Установить("флУдалитьПомеченные",1); СЗ.Установить("флВключатьГруппы",1); |
|||
|
17
GreyK
26.04.11
✎
16:09
|
(16) "представление" у них разное, а "Получить" и "Установить" работает именно с "представление".
|
|||
|
18
1Сергей
26.04.11
✎
16:10
|
(17) НайтиЗначение на представление не смотрит
|
|||
|
19
Ёпрст
гуру
26.04.11
✎
16:10
|
(17) и че ?
|
|||
|
20
1Сергей
26.04.11
✎
16:11
|
в общем, понял. Спасибо всем
|
|||
|
21
Ёпрст
гуру
26.04.11
✎
16:11
|
забить на СЗ, делать либо в ТЗ/Индексированной ТЗ/Векторе/Ассоциативном векторе/Структуре и т.д.
|
|||
|
22
1Сергей
26.04.11
✎
16:12
|
(21) мне СЗ всегда нравился своей простотой и удобством
|
|||
|
23
Ёпрст
гуру
26.04.11
✎
16:16
|
(22) медленно, в нём все методы медленные + много чего не хватает.
|
|||
|
24
GreyK
26.04.11
✎
16:17
|
(22) СЗ.Установить("Планета",Планета);
СЗ.Установить(""+Планета.Наименование+":ГравитационнаяПостоянная",9.8); СЗ.Установить(""+Планета.Наименование+":ЕстесвенныйСпутник:"+НомерСпутника,Луна.ТекущийЭлемент()); |
|||
|
25
GreyK
26.04.11
✎
16:19
|
+(24) (22) Луна.ТекущийЭлемент() - это как?
|
|||
|
26
1Сергей
26.04.11
✎
16:20
|
(25) например,
Луна = СоздатьОбъект("Справочник.Спутники"); Луна.НайтиПоНаименованию("Луна"); |
|||
|
27
GreyK
26.04.11
✎
16:25
|
(26) Так было-бы правильнее:
Спутники = СоздатьОбъект("Справочник.Спутники"); Спутники.НайтиПоНаименованию("Луна"); А то чет на "Луна, луна. Цветы, цветы" смахивает, могут и привлечь за плагиат :) |
|||
|
28
GreyK
26.04.11
✎
16:32
|
+(24) И конечно-же СЗ.ДобавитьЗначение(Планета,"Планета");
|
|||
|
29
Cthulhu
27.04.11
✎
10:23
|
(23): как раз "получить" и "установить" - быстрые.
использование их в качестве штатных "псевдоиндексов" для ТЗ иногда очень ускоряет работу с ней. Когда ТЗ большая, не тасуется, и в ней часто нужно искать конкретное значение в конкретной колонке, и при этом у этих значений есть уникальное текстовое представление - то вместо многократных поисков по ТЗ (а "найтизначение" что в ТЗ что в СЗ - тупым перебором реализовано) гораздо быстрее получается хранить в СЗ по представлениям номера строк такой ТЗ. |
|||
|
30
Cthulhu
27.04.11
✎
10:41
|
ЗЫ: что-то меня снова этот вопрос забеспокоил.
пойду поковыряюсь, попробую оптимизировать через текстовое представление СЗ... |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |