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

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

Сохранение записи в файл.


Belorus ©   (2007-02-23 10:40:00) 

Есть структура
TMonthShed = record
 MonthNum : Cardinal;
 Year     : Cardinal;
 Clients : array of Cardinal;
 Days    : array of Cardinal;
 end;

При попытке сохранить её в типизированый файл сообщает мол

Type TmonthShed needs finalization.

Что можно сделать чтобы сохранить запись ? Просто таких структур у меня больше 15, и писать для каждой процедуру сохранения и загрузки - мне кажется не лучшим выходом.


Belorus   (2007-02-23 16:29:00) [1]

Опять опечатался?
Ещё раз извиняюсь. Но теперь не опечатался. Сейчас просто не задумался.
По негласным правилам интернета любой собеседник мужского пола и обращаться можно на ты. Но первое уже далеко не всегда истина, а привычка осталась.


Конечно, было бы лучше, чтобы компилятор заодно умел писать обработчики, исходя из названия кнопки, чем не умел...

По очевидным причинам этот бред и то чего пожелал я несоизмеримы. Но всё равно спасибо. Я уже понял что хочу слишком многого.


Elen   (2007-02-23 15:47:00) [2]


> Спасибо что поправил.

Опять опечатался?


Virgo_Style   (2007-02-23 13:34:00) [3]

Belorus ©   (23.02.07 13:00) [7]
IMHO лучше чтобы компилятор умел делать это, чем не умел.


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

Конечно, было бы лучше, чтобы компилятор заодно умел писать обработчики, исходя из названия кнопки, чем не умел... Но это слишком рискованно, бабуины не дремлют.


Belorus   (2007-02-23 13:00:00) [4]

Может при попытке компиляции?

Да . Именно при компиляции. Спасибо что поправил.


Может всетаки наоборот, как раз написать пару процедур SaveStruktToFile и LoadStruktFromFile - общих для всех твоих структур - и есть выход?

Скорее всего именно так. :(

Как вы представляете себе запись динамического массива в типизированный файл
Ну скажем сперва делфи запищет размер а дальше сами элементы. Благо они все по 4 байта. IMHO лучше чтобы компилятор умел делать это, чем не умел.


RASkov   (2007-02-23 12:25:00) [5]

> [0] Belorus ©   (23.02.07 10:40)

Либо объяви структуру "законченной"(массивы статические)
либо откажись от типизированного файла и пиши в нетипизированный файл блоками.
И как уже заметили, такую ошибку делфи генерит на этапе компиляции, а не в рантайме.

> писать для каждой процедуру сохранения и загрузки - мне
> кажется не лучшим выходом

Может всетаки наоборот, как раз написать пару процедур SaveStruktToFile и LoadStruktFromFile - общих для всех твоих структур - и есть выход?


Elen   (2007-02-23 11:29:00) [6]


> Virgo_Style ©   (23.02.07 11:26) [4]

в типизированный никак. Через BlockWrite представляю, поэтому и удивила фраза : "При попытке сохранить её в типизированый файл", хотя эта ошибка должна была вылезти при компиляции.


Virgo_Style   (2007-02-23 11:26:00) [7]

Как вы представляете себе запись динамического массива в типизированный файл


Elen   (2007-02-23 11:20:00) [8]


> При попытке сохранить её в типизированый файл

Может при попытке компиляции?


S@shka   (2007-02-23 11:13:00) [9]


> воспользоваться процедурой finalize перед записью в файл


Интересно а что структура динамически создается?


Elen   (2007-02-23 10:56:00) [10]

воспользоваться процедурой finalize перед записью в файл


Наверх

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