|
Странный баг с массивом. Ø (Волшебник 18.02.2016 13:42) | ☑ | ||
---|---|---|---|---|
0
ammo-sov
18.02.16
✎
11:48
|
Здравствуйте!
Возникла ситуация, при котором необходимо искать в массиве (методом найти(значение), которое возвращает 1, если элемент поиска найден в массиве и наоборот) определенные данные. *версия платформы 8.3.5.1383 После некоторых тестов свежеиспеченного кода оказалось, что в одном случае наш метод поиска хромает. Не буду томить огромным кодом, а вставлю только сымитированный код: Массив = Новый Массив(); Массив.Добавить("Шаблон 1-2"); Массив.Найти("Шаблон 1-2"); Результатом, на первый взгляд правильного кода, должна стать заветная 1, но приходит 0. Так вот, встречались ли у кого-нибудь подобные ситуации. Конечно, обойти эту неприятность не составляет труда другими методами, но все же интересно, что вы думаете? |
|||
1
Волшебник
модератор
18.02.16
✎
11:49
|
Если элемент найден, возвращается его индекс. Если элемент не найден, возвращается Неопределено.
|
|||
2
Волшебник
модератор
18.02.16
✎
11:50
|
элементы массива индексируются с 0
|
|||
3
Волшебник
модератор
18.02.16
✎
11:50
|
Неопределено <> 0
|
|||
4
Ёпрст
18.02.16
✎
11:50
|
(0) И ? Индекс=0, че не устраивает ?
Индексы коллекций, в снеговике, всегда с 0 начинаются |
|||
5
Господин ПЖ
18.02.16
✎
11:51
|
>Конечно, обойти эту неприятность не составляет труда другими методами
или начни читать СП или увольняйся |
|||
6
Ёпрст
18.02.16
✎
11:51
|
Чорт, олени не кормлены
|
|||
7
ks_83
18.02.16
✎
11:55
|
ветку в юмор
|
|||
8
ammo-sov
18.02.16
✎
12:02
|
Типичный русский форум, да Ёпрст?
Всем остальным спасибо, разобрался. Дело было в том, что я проверял в цикле на существование (ifelse) строки в массиве. И когда приходил первый элемент с индексом 0, то он выражался в конструкции, как ложь и не проходил проверку. |
|||
9
DDwe
18.02.16
✎
12:04
|
(8) См. (5). Прежде чем писать, нужно почитать.
|
|||
10
ammo-sov
18.02.16
✎
12:09
|
DDwe, ясно.
|
|||
11
DDwe
18.02.16
✎
12:11
|
(10) Хорошо. Видимо шанс есть.
|
|||
12
el7cartel
18.02.16
✎
12:18
|
пожалуй тут все потеряно!!!шансов нет!!!
|
|||
13
Ёпрст
18.02.16
✎
12:21
|
(8) че ?
если ты про (6) , то это не тебе |
|||
14
Ёпрст
18.02.16
✎
12:22
|
Ну и, если не знаешь, что означает выражение в (6) , то см.(5)
|
|||
15
ObjectRelation Model
18.02.16
✎
12:22
|
(3) кстати да
NULL <> 0 |
|||
16
ObjectRelation Model
18.02.16
✎
12:23
|
В большинстве языков Find, если не нашла элемент возвращает -1, но 1С пошла своей тропой
|
|||
17
Господин ПЖ
18.02.16
✎
12:26
|
(16) там тоже принято кодировать не смотря в msdn и прочие мануалы?
|
|||
18
Господин ПЖ
18.02.16
✎
12:27
|
вопрос не в языке как обычно. а в банальном рукож.пии
|
|||
19
ObjectRelation Model
18.02.16
✎
12:28
|
(17) а причем тут это? просто есть общая культура, когда поведение предсказуемо, поэтому переход от языка к языку хоть немного легче
|
|||
20
DDwe
18.02.16
✎
12:32
|
(19) Фигню вот сейчас городишь. (1С не оправдываю :))
|
|||
21
los_hooliganos
18.02.16
✎
12:45
|
(0) Глюк из-за того что размерность массива не указана. А раз размерность null, то метод Найти ничего и не находит.
Прежде чем добавлять увеличь размер массива. |
|||
22
ObjectRelation Model
18.02.16
✎
12:47
|
(21) это сейчас что было?
|
|||
23
Drac0
18.02.16
✎
12:48
|
(21) Чо? Ты сейчас про 1С?
|
|||
24
los_hooliganos
18.02.16
✎
12:58
|
(22) (23) Работа с массивом это великое искусство. Не каждому дано.
|
|||
25
Ёпрст
18.02.16
✎
12:59
|
(24) размерность массива только в клюшках задавать надо было, в снеговике - не трэба
|
|||
26
ObjectRelation Model
18.02.16
✎
12:59
|
(24) это ты прямо как в точку )))
|
|||
27
rs_trade
18.02.16
✎
13:08
|
(0) У меня такая же фигня. Этот странный глюк на всех версиях платформы. Писать в 1С надо.
|
|||
28
DailyLookingOnA Sunse
18.02.16
✎
13:41
|
Массив.Вставить(2000000) было бы куда лучше.
И сразу индекс бы был известен. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |