Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.031 c
1-1089803621
Sparrow
2004-07-14 15:13
2004.08.01
как получить инфу о версии офиса на уровне прекомпилятора?


3-1089008948
Pavelkq
2004-07-05 10:29
2004.08.01
Какую базу поюзать и как?


14-1089882872
peypivo
2004-07-15 13:14
2004.08.01
просмотр фильмов


14-1089944676
StarCon
2004-07-16 06:24
2004.08.01
Дельфи 8


6-1085994971
half_litre
2004-05-31 13:16
2004.08.01
Алгоритм обмена данными ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский