Форум: "Основная";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Вниз
Проблема с random Найти похожие ветки
← →
badaxe (2003-01-15 15:37) [0]Приветствую.
Возникла такая проблема:
при помощи ф-ции random заполняю массив номерами записей в рекордсете.
randomize;
for j:= 1 to 5 do
begin
a[j]:=random(query.RecordCount);
end;
Данный кусок выполняется без проблем, при закрытии приложения возникает ошибка "Access violation at address 00401D41 in module qqqq.exe"
А если закомментировать строчку с random, то все закрывается нормально.
Где тяпка?
← →
badaxe (2003-01-15 15:52) [1]ну хоть намекните... :(
← →
Digitman (2003-01-15 15:53) [2]однозначно, что "тяпка" - не в Random()
- либо объект Query не существует
- либо массив a[] не существует
- либо выход за пределы памяти, распределенные тобой под массив a[]
p.s. наивно полагать, что св-во query.RecordCount будет меняться в ходе выполнения такого цикла, если ты этого ожидаешь
← →
badaxe (2003-01-15 15:58) [3]
> p.s. наивно полагать, что св-во query.RecordCount будет
> меняться в ходе выполнения такого цикла, если ты этого ожидаешь
Вовсе нет... все что мне нужно - это случайным образом выбрать несколько записей из рекордсета...
> - либо выход за пределы памяти, распределенные тобой под
> массив a[]
а как выяснить так ли это ?
← →
gsu (2003-01-15 16:03) [4]>> Данный кусок выполняется без проблем
странно, а все range cheking стоят ?
и проверь, как создаешь все объекты (массив)
← →
Digitman (2003-01-15 16:06) [5]
> все что мне нужно - это случайным образом выбрать несколько
> записей из рекордсета
глупей не придумаешь - всякий раз для формирования параметра ф-ции Random() обращаться к объекту Query лишь затем, чтобы в рез-те получить одно и то же зн-е св-ва RecordCount )
var
rc: Integer;
...
rc := query.RecordCount
for j:= 1 to 5 do
begin
a[j]:=random(rc);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c