Главная страница
    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.032 c
1-1089850879
Gleb
2004-07-15 04:21
2004.08.01
Программный поиск файлов


4-1087415989
juiceman
2004-06-16 23:59
2004.08.01
экранная монополия


14-1089620789
Dmitriy O.
2004-07-12 12:26
2004.08.01
Разработка компьютерной системы для полета на Марс


1-1089447086
PenguinX
2004-07-10 12:11
2004.08.01
Выравнивание текста в StringGrid.


1-1090223109
Vilux
2004-07-19 11:45
2004.08.01
Delphi+xls





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский