![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Длина массива записей -- как??? [D7, WinXP]
cvg © (2004-08-04 16:38:00)Hi, masters! Как можно найти длину массива записей (или как оно там по-умному называется?) Структурка такая:
type MyRec =
record
name:string[10];
ar0:integer;
ar1:double;
ar2:double;
ar3:double;
ar4:double;
ar5:double;
end;
MyArr = array of MyRec;
Length(A) не работает... Ж:(((
Digitman (2004-08-04 18:09:00) [21]
> cvg (04.08.04 18:01) [44]
залезь в опции проекта и пошарь там ... оптимизатор вкл/откл-ся в опциях компилятора
cvg (2004-08-04 18:01:00) [22]Узнать бы ещеЮ как это делается. А то затравку не я писал...
MacroDenS (2004-08-04 17:56:00) [23]отключи этот д. оптимизатор..
Sandman25 (2004-08-04 17:56:00) [24]Конечно, отключить. И включить только тогда, когда программа будет полностью готова.
cvg (2004-08-04 17:54:00) [25]Не знаю вот только, что лучше: оставить как есть и в отладчике не отслеживать либо совать это значение в переменную, чтоб отслеживать? Или отключить этот д... оптимизатор?
Digitman (2004-08-04 17:47:00) [26]
> Может, дело и впрвду в этом д... оптимизаторе?
именно в нем ... но отнюдь не в д...
MacroDenS (2004-08-04 17:43:00) [27]ну так заработало что ли?
cvg (2004-08-04 17:42:00) [28]Вот чмо!!! Перед
if length(A) > 0
then ...
написал
m := length(A);
И в списке отслеживаемых переменных эта m нормально показывается! То-то я вроде пару циклов прошел и гляжу, что условя вроде как логично срабатывают... Может, дело и впрвду в этом д... оптимизаторе?
Digitman (2004-08-04 17:36:00) [29]
> cvg
выключи для начала оптимизатор
MacroDenS (2004-08-04 17:36:00) [30]кинь юнит на мыло...
или вообще, я здесь код маленького юнита делал, создай новое приложение и по его подобие все свояй, потом сюда с отчетом...
cvg (2004-08-04 17:33:00) [31]Юнит здоровый... Насчет StLength(A): так дело в том, что исходно массив пуст, а добавление эл-та идет в отдельной функции.
Digitman (2004-08-04 17:24:00) [32]
> cvg (04.08.04 17:18) [29]
а где у тебя SetLength(A) ?
MacroDenS (2004-08-04 17:24:00) [33]у тебя юнит здоровый, если нет, то кинь сюда полностью
Sandman25 (2004-08-04 17:21:00) [34]ИМХО лучше проверять Length(A) > n
MacroDenS (2004-08-04 17:21:00) [35]да не все вроде ok!
cvg (2004-08-04 17:20:00) [36]Говорю же, что в списке отслеживаемых переменных показывает length(a): Inaccessible value
cvg (2004-08-04 17:18:00) [37]
type MyRec =
record
name:string[10];
ar0:integer;
ar1:double;
ar2:double;
ar3:double;
ar4:double;
ar5:double;
end;
MyArr = array of MyRec;
var A:MyArr;
function blah_blah_blah:integer;
...
if length(A) > 0
then
begin
buf[1] := A[n].ar4; A[n].ar4 := A[n].ar1;
buf[2] := A[n].ar5; A[n].ar5 := A[n].ar2;
end;
...
Anatoly Podgoretsky (2004-08-04 17:15:00) [38]Да их последних сообщений видно, что у него претензии не к функции, а к отладчику
MacroDenS (2004-08-04 17:14:00) [39]ну вообще странно!
а как именно ты используешь length(a), в смысле просто showmessage(length(a)) или еще какие операции делаешь?
Digitman (2004-08-04 17:14:00) [40]
> cvg (04.08.04 17:09) [22]
приведи ПОЛНЫЙ код, где фигурирует объявление и использование переменной А