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

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

Типизированный файл [D6, WinXP]


saNat ©   (2005-09-14 00:58:00) 

Доброго времени суток (о:

Какую то глупость я делаю... В чем ошибка:


Type
TAppConfigData=Record
 PName:String;
 HostName:String;
 PortNumber:Byte;
 UserName:String;
 MailName:String;
End;

TDeskTopForm=Class(TForm)
   AppMenu                             :TMainMenu;
   AppConfig                            :TMenuItem;

   Procedure AppConfigClick(Sender:TObject);
   ConfigFile:File of TAppConfigData;

 Private

 Public
  Configuration:TAppConfigData;
End;



При компиляции выдает ошибку "Type 'TAppConfigData' needs finalization - not allowed in file type"

С уважением, ЕВА


Германн   (2005-09-14 01:28:00) [1]

Дело не только в том, что stringможет быть разной длины. В конце концов и ShortStringможет быть разной длины (от 0 до 255). А столько в том, что строка в записи:

> PName:String;

означает, что реально в записи присутствует не сама строка, а её адрес в АП данного процесса. Запись сего адреса в файл - бессмысленна, потому что  чтение его, скорее всего, будет производиться другим процессом.
Но и такие структуры, при необходимости, можно записывать в файл. Но в (увы) не в типизированный! :(


saNat   (2005-09-14 01:06:00) [2]

Понял. Спасибо за помощь

С уважением, ЕВА


Eraser   (2005-09-14 01:04:00) [3]


> saNat ©   (14.09.05 00:58)

Дело в том что для записи структуры (записи) на диск она должная иметь конечный размер, а данные типа string могут быть разной длины.
Здесь надо использовать вместо string - ShortString или String[1..255] где в квадратных скобках должна быть длина строки от 1 до 255.


saNat   (2005-09-14 00:59:00) [4]

Забыл указать место...


ConfigFile:File of TAppConfigData;


Наверх

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