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

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

Проблема с типизованным файлом! [D7, 2000, XP]


Elun ©   (2009-04-27 09:15:00) 

Вот такие две записи я создал:
type
zadan=record
 vopr:string;
 answ:array[1..4] of string;
 vern:integer;
   end;
   
tezt=record
     namme:string;
     quest:string;
         countt:integer;
end;

При компиляции выдаёт ошибки:
Build
 [Error] wizardd.pas(59): Type 'zadan' needs finalization - not allowed in file type
 Строка 59: fil:file of zadan;
 [Error] wizardd.pas(60): Type 'tezt' needs finalization - not allowed in file type
 Строка 60: spisok:file of tezt;
 [Error] wizardd.pas(132): Incompatible types
 Строка 132: append(spisok);
 [Fatal Error] Tes.pas(169): Could not compile used unit 'wizardd.pas'

Использовал Delphi 7.
Пытался создать на Pascal ABC такие записи, всё работает. WTF?


sniknik   (2009-04-27 10:09:00) [1]

> у меня, тоже есть массивы
тут компилятору не нравится не массив а строки. впрочем если массив сделать динамическим то и он не пойдет. и наоборот если поменять тип строки с "большой" на "короткую" то претензий у компилятора не будет, т.к. это уже будет не указатель.

и если ты будешь использовать там указательные типы за которыми компилятор не следит, то тоже будет работать... на этапе компиляции, данные же будут записаны "криво".


Anatoly Podgoretsky   (2009-04-27 09:51:00) [2]


> дело в том, что я видел программу, в которой запись как
> у меня, тоже есть массивы, но там всё работает.

Максимальная длина строки?


Rembo   (2009-04-27 09:35:00) [3]

packed ненадо, массив оставь, а количество символов в строках тоже оставь)


Elun   (2009-04-27 09:33:00) [4]

дело в том, что я видел программу, в которой запись как у меня, тоже есть массивы, но там всё работает.


Rembo   (2009-04-27 09:31:00) [5]

Если актуально, попробуй zadan=packed record, массив замени на 4 строки answ1..4, и возле каждого "string" поставь "[252]"
)


Elun   (2009-04-27 09:28:00) [6]


> Нет смысла использовать указатели в типизированых записях

К сожалению я не понял, что вы сказали. почему он выдаёт ошибки?


Anatoly Podgoretsky   (2009-04-27 09:23:00) [7]

> Elun  (27.04.2009 9:15:00)  [0]

Нет смысла использовать указатели в типизированых записях


Наверх

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