Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

Массив типа Variant   Найти похожие ветки 

 
Gerasym   (2006-07-03 16:31) [0]

В процессе написания софтинки столкнулся с ошибкой:
"Variant or safe array index out of bounds"
(выбивает в самом начале цикла по сравнению 2х массивов)
Уважаемы знатоки подскажите пожалуйста - какие существуют на него ограничения?
Массив на ~900 значений сравнивается с массивом на ~11000 значений.
Может есть ограничение на длинну массива?


 
icWasya ©   (2006-07-03 16:40) [1]

ну а выход за границу массива не проверяешь??


 
Gerasym   (2006-07-03 16:47) [2]

А как? Да и вылет в происходит в самом начале цикла, следовательно я в начале массива и нахожусь


 
Gerasym ©   (2006-07-03 17:00) [3]

Опишу подробнее
Имеется 2 массива
ArrayData := VarArrayCreate([1,Rows,1,2], varVariant);
ArrayData2:= VarArrayCreate([1,Rows2], varVariant);
Rows - кол-во использованных строк в Книге Эксель
Первый массив из одного файла, второй - из другого заполняется диапазоном значений. Потом начинается цикл сравнения значений первого массива и второго.
for i:=1 to rows do
for j:=1 to rows2 do
if ArrayData[i,1]=ArrayData2[j] then ArrayData2[j]:=0

В самом начале цикла вылетаю с ошибкой :(


 
Ega23 ©   (2006-07-03 17:12) [4]

Индесация не с нуля ли начинается?


 
Gerasym ©   (2006-07-03 17:14) [5]

что с 0 цикл начинать что с 1 - результат тот же :(


 
Германн ©   (2006-07-03 17:22) [6]


> что с 0 цикл начинать что с 1 - результат тот же :


А заканчивать rows или rows-1 есть разница? :-)


 
Gerasym ©   (2006-07-03 17:24) [7]

Дык в начале цикла то выбивает :)))


 
Gerasym ©   (2006-07-03 17:27) [8]

Что значит Safe Array Index? Безопасный индекс массива?


 
Германн ©   (2006-07-03 17:31) [9]


> Да и вылет в происходит в самом начале цикла, следовательно
> я в начале массива и нахожусь


Не очевидно. Посмотри под отладчиком.


 
Gerasym ©   (2006-07-03 17:32) [10]

Посмотрел :) как только происходит инициализация цикла - сразу эта ошибка


 
Германн ©   (2006-07-03 17:34) [11]


> Посмотрел :) как только происходит инициализация цикла -
>  сразу эта ошибка


И чему в этот момент равна переменная цикла?


 
Gerasym ©   (2006-07-03 17:41) [12]

в зависимости от того с чего начну цикл... если с 0 то 0, если 1 - то соответственно 1 :)


 
Германн ©   (2006-07-03 17:48) [13]


> в зависимости от того с чего начну цикл... если с 0 то 0,
>  если 1 - то соответственно 1 :)


Это ты увидел под отладчиком или предполагаешь?


 
Gerasym ©   (2006-07-03 17:49) [14]

Я же написал что посмотрел


 
tesseract ©   (2006-07-03 17:50) [15]


> Что значит Safe Array Index? Безопасный индекс массива?


SafeArray - такое ole-шный тип данных.

> Посмотрел :) как только происходит инициализация цикла -
>  сразу эта ошибка

А массив инициализирован?


 
Gerasym ©   (2006-07-03 17:55) [16]

Массив инициализирован и заполнен данными
У SafeArray нету ограничений на длинну?


 
Gerasym ©   (2006-07-03 18:31) [17]

Все :) нашел в чем дело...
Массив я неправильно создавал
ArrayData2:= VarArrayCreate([1,Rows2], varVariant); неправильный
ArrayData2:= VarArrayCreate([1,Rows2,1,1], varVariant); правильный
ура товарищи :)
Всем кто помогал спасибо :)



Страницы: 1 вся ветка

Текущий архив: 2006.07.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
2-1151664724
FFFF
2006-06-30 14:52
2006.07.23
Поис в поле формы


15-1150731148
OSokin
2006-06-19 19:32
2006.07.23
Что только не понапишут в своих работах...


15-1151226572
oldman
2006-06-25 13:09
2006.07.23
До чего ж докатилось наше образование... :(


1-1149672019
Мрась
2006-06-07 13:20
2006.07.23
Компонент в DLL


15-1148887793
GM
2006-05-29 11:29
2006.07.23
Геннетичеси модифицированные продукты