Проблема с переменной цикла

0 голосов
спросил 02 Ноя, 05 от Гость (210,080 баллов) в категории Программные продукты Esri

Возник неожиданный вопрос: В цикле "for each rec in theme" не могу сохранить значение rec. Т.е. я пишу 

if (....) then

i=rec

continue

end

Но, к моему удивлению,  в последующих циклах, когда в данный блок программа не заходит,  i = текущему rec image, а не тому, что был при заходе в указанный блок!!! Т.е. значение не сохраняется. Это чего, так правильно, что ли? Или какая-то ошибка? Подскажите, пожалуйста, кто знает!

3 Ответы

0 голосов
ответил 03 Ноя, 05 от Гость (210,080 баллов)

Судя по молчаливой реакции на мой вопрос,я спросила какую-то глупость.image Действительно, я проверяла, в обычном случае переменная, как ей и положено, сохраняется.Однако вот такая супер-простенькая программка дает следующие результаты: Открываю тему и

ntvop=0
for each i in ftpoint
ntvop=ntvop+1
if (ntvop=5) then
ntvop=1
end


if (ntvop=1) then
jt1=i
lf.writeelt("jt1="+jt1.asstring)
continue
end

if (ntvop=2) then
jt2=i
lf.writeelt("jt2="+jt2.asstring)
continue
end

if (ntvop=3) then
jt3=i
lf.writeelt("jt3="+jt3.asstring)
continue
end

if (ntvop=4) then
jt4=i
lf.writeelt("jt4="+jt4.asstring)
end
lf.writeelt("i="+i.asstring+" jt1="+jt1.asstring+" jt2="+jt2.asstring+" jt3="+jt3.asstring+" jt4="+jt4.asstring)
end   

Результаты:jt1=00000000.00
jt2=00000001.00
jt3=00000002.00
jt4=00000003.00
i=00000003.00 jt1=00000003.00 jt2=00000003.00 jt3=00000003.00 jt4=00000003.00
jt1=00000004.00
jt2=00000005.00
jt3=00000006.00
jt4=00000007.00
i=00000007.00 jt1=00000007.00 jt2=00000007.00 jt3=00000007.00 jt4=00000007.00
jt1=00000008.00
jt2=00000009.00
jt3=00000010.00
jt4=00000011.00
i=00000011.00 jt1=00000011.00 jt2=00000011.00 jt3=00000011.00 jt4=00000011.00

Объясните мне кто-нибудь где тут ошибка. Пожалуйста.image

0 голосов
ответил 03 Ноя, 05 от BigSerg (4,080 баллов)
Пробуй использовать, например не
jt3=i, а jt3=i.Clone
и так везде

0 голосов
ответил 09 Ноя, 05 от Гость (210,080 баллов)

Спасибо!!! Помогло!image

Как-то я плохо ориентируюсь в этих клонах. В том смысле, что туго соображаю когда их надо использовать. imageКакая-то странноватая логика в этом, как, в частности, в вышеприведенном примере. Ну какое дело этой переменной, что ее источник изменился???? Она-то - самостоятельный объект, а не ссылка! По логике так должно быть.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...