Форум: "Основная";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
ВнизPacked record & File Найти похожие ветки
← →
webpauk (2004-07-20 11:30) [0]Создаю следующие записи:
TBlackWhite = (Black, White);
TStep = packed Record
BW: TBlackWhite;
X, Y: Integer;
end;
TInfo = packed record
KolKletka, SizeOfKletka, arrayCount: Integer;
ffArray: array of Tstep;
end;
после чего пытаюсь создать файл:GFile: File of TInfo;
а Delphi ругается
Type "TInfo" needs finalization - not allowed in file type
может кто подскажет причину и возможность устранения ошибки?!
пытался создать указательpInfo = ^TInfo;
но инициализировать его почему то не получается
← →
Digitman © (2004-07-20 11:34) [1]причина - в присутствии в объявлении в теле структуры TInfo дин.типа данных
меняй на статический тип - и все будет в порядке
← →
Суслик © (2004-07-20 11:35) [2]
> может кто подскажет причину и возможность устранения ошибки?!
т.к. есть динамический массив, а он требует именно того о чем написано в жирном сообщении.
1. замените на фикс. массив.
2. если п1 не реален не пользуйтесь типизированными файлами. Пишите сами в бинартник со своим протоколом.
← →
webpauk (2004-07-20 11:51) [3]заменил
TInfo = packed record
KolKletka, SizeOfKletka, arrayCount: Integer;
ffArray: array [1..361] of Tstep;
end;
а когда пытаюсь:fInfo.fKolKletka:=KolKletka;
fInfo.fSizeOfKletka:=SizeOfKletka;
fInfo.farrayCount:=arrayCount;
for I := Low(fArray) to arrayCount do
begin
fInfo.ffArray[I]:=fArray[I];
end;
, то данные fArray записываются не в fInfo.ffArray, а в fInfo.fSizeOfKletka и fInfo.farrayCount. Почему?
← →
Суслик © (2004-07-20 12:00) [4]знать бы еще что такое fInfo
← →
webpauk (2004-07-20 12:07) [5]fInfo: Tinfo
← →
Суслик © (2004-07-20 12:09) [6]
> webpauk (20.07.04 12:07) [5]
> fInfo: Tinfo
угу, кончено :)))
fKolKletka в TInfo откуда?
у тебя есть нормально откомпилированный, НО неработающий код?
что мОзги пудришь.
← →
webpauk (2004-07-20 12:15) [7]Просю пробачення, если что-то неправильно объяснил.
В процессе создания изменил record Tinfo, а указать это забыл.
В общем уже разобрался - запись нужно делать fInfo.ffArray[I+1]:=fArray[I];
Спасибо всем кто помогал.
Жаль, что динамический массив нельзя запихнуть. Из-за статического файл разросся до 3K!(было порядка 80bt)
← →
Суслик © (2004-07-20 12:17) [8]
> Спасибо всем кто помогал.
и еще!
включи range check error в опициях проекта.
рано тебе их еще выключать.
сразу бы ошибку нашел.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c