Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Длина массива записей -- как??? [D7, WinXP]


Страницы:   1 2 3 4

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]


приведи ПОЛНЫЙ код, где фигурирует объявление и использование переменной А


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо