|
|
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
допустим у нас есть коллекция значений с ключами: oCol бейсик позволяет обращаться к значению по ключу следующим образом: oCol.Item("ключ") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2009, 21:25 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
блин случайно запостил... итак: oCol.Item("ключ") или сокращенный вариант oCol("ключ") так как Item это метод по умолчанию но есть еще третий вариант oCol![ключ] что за конструкция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2009, 21:27 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Устаревшая конструкция, отход от которой рекомендовался, ЕМНИП, ещё во времена VB 4.0, но продолжающая спокойно работать. Означает почти то же самое - обращение к элементу коллекции, являющейся свойством по умолчанию. "Почти" потому, что нельзя в таком синтаксисе использовать численный ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2009, 09:51 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Про устаревшую не знал, спасибо! Про то что это обращение к элементу коллекции это понятно. Невозможность использовать числовой индекс это понятно. Как и невозможность использовать в качестве ключа строковую переменную в которой храниться имя ключа. Хотелось просто понять, это просто другой синтаксис или что то еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2009, 10:33 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Да, это другой синтаксис. Нет, это стандартнй синтаксис. Этот синтаксис работает в VB и VBA, но не работает в VBScript. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2009, 10:56 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
> Автор: Antonariy > Да, это другой синтаксис. Нет, это стандартнй синтаксис. Этот синтаксис работает в VB и VBA, но не работает в > VBScript. Почему-то этот синтаксис чаще всего употребляют при работе с рекордсетом - RS![имя поля] Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2009, 10:59 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Скорее всего потому что люди считают, что это фишка именно рекордсета. Когда-то я тоже так считал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2009, 11:05 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
да не только с рекордсетом в документации часто вижу строчки кода обращения к коллекциям типа Forms или Controls именно через восклицательный знак, а обращение к коллекциям созданным пользователем, через метод в общем странно это все и загадочно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2009, 22:51 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Lenivec, возможно, потому, что не всегда у коллекции, созданной пользователем, метод/свойство обращения к элементу имеет атрибут "по умолчанию" (в частности, в VBA IDE диалог свойств процедуры урезан настолько, что в нём нельзя выставить атрибуты, в отличие от VB; при этом, если модуль экспортировать в текстовый файл, добавить, что нужно, в текстовом редакторе, и импортировать назад, атрибуты "подхватываются"). Поэтому для надёжности используют синтаксис с именем метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 10:02 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
да, верно, но использование восклицательного знака это не объясняет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 16:56 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
А вам какое объяснение нужно? Лично я использую такую запись потому что она лаконичней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 17:48 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Lenivecда, верно, но использование восклицательного знака это не объясняет :) авторThere are three ways to refer to an object in a collection. The fastest way is to provide the name of the collection followed by the name of the object to which you are referring, as shown in the following examples: Forms!Employees QueryDefs![Current Product List] Use the ! operator to separate the name of the collection from the name of the particular object within it. Also, if the name of the object contains spaces, you must enclose it in brackets. In most cases, you’ll know the name of the object to which you’re referring, and you should use this syntax. Occasionally, however, you may not know the name of the object until the procedure is running. In this case, you can use a string variable to represent the name of the object. In the following examples, strFormName and strQueryDefName are string variables that contain the name of a Form object and a QueryDef object. Forms(strFormName) QueryDefs(strQueryDefName) If the value of strFormName is "Employees" and the value of strQueryDefName is "Current Product Name", then the previous example is equivalent to the following lines of code: Forms("Employees") QueryDefs("Current Product Name") You can also refer to an object in a collection by its index number. Like the elements of an array, each object in a collection has an index number that refers to its position in the collection. The following examples use the index number to refer to a particular object in a collection. Forms(0) QueryDefs(1) MSDN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 17:57 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
Lenivecда, верно, но использование восклицательного знака это не объясняет :)О как :) Можно понять двояко, по меньшей мере: 1) почему используется восклицательный знак вообще? 2) почему используется восклицательный знак для обращения к объектам стандартных библиотек? На первый вопрос ответ указал qwrqwr: наличие элемента языка определяется синтаксисом языка, а объяснение использования даётся в описании языка/руководстве программиста. На второй вопрос ответ мне видится таким (как бы недописанной половиной моего предыдущего поста): потому что достоверно известно, что в стандартных библиотеках у соответствующих методов атрибут "по умолчанию" выставлен, следовательно, можно без опаски использовать восклицательный знак, а что в конкретном месте безопасного использования писателю в голову стукнуло в голову - традиции, Copy-Paste, лень, стремление к выразительности(?) или к лаконичности, и т. д. - да хто шь яво знаить. "Голова - предмет тёмный, и исследованию не подлежит" (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 19:51 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
AntonariyА вам какое объяснение нужно? Лично я использую такую запись потому что она лаконичней. лаконичней, возможно, но менее удобно, факт. хотя бы потому что с конструкцией использующей восклицательный знак не работает интелисенс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 21:07 |
|
||
|
Работа с коллекцией
|
|||
|---|---|---|---|
|
#18+
по поводу ответа qwrqwr ну в общем вопрос изначально так и задавался, что существует несколько вариантов обращения, то есть информация приведенная вами и содержалась в моем первом посте, то есть я в курсе того что написано в руководстве to 13-й квартал меня скорее интересовал первый вопрос чем второй но что конкретно я хотел услышать я сам точно не знаю, так чет неделя тяжелая была, много работы и меня тупо переклинило :) наверно наиболее близкий ответ к тому что я ожидал услышать это то что вы ответили сразу, так сложилось исторически :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2009, 21:12 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=60&tid=2160789]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 504ms |

| 0 / 0 |
