Вниз
Скачать: CL | DM;

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

← →
Belorus ©   (2007-02-23 10:40) [0]

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

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

Type TmonthShed needs finalization.

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


← →
Elen ©   (2007-02-23 10:56) [1]

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


← →
S@shka ©   (2007-02-23 11:13) [2]


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


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


← →
Elen ©   (2007-02-23 11:20) [3]


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

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


← →
Virgo_Style ©   (2007-02-23 11:26) [4]

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


← →
Elen ©   (2007-02-23 11:29) [5]


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

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


← →
RASkov   (2007-02-23 12:25) [6]

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

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

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

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


← →
Belorus ©   (2007-02-23 13:00) [7]

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

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


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

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

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


← →
Virgo_Style ©   (2007-02-23 13:34) [8]

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


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

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


← →
Elen ©   (2007-02-23 15:47) [9]


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

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


← →
Belorus ©   (2007-02-23 16:29) [10]

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


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

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
15-1171914181
Nic
2007-02-19 22:43
2007.03.18
Защита программ в Excel


2-1172248355
Sfelt
2007-02-23 19:32
2007.03.18
Сохранение изображения


5-1150178064
zorik
2006-06-13 09:54
2007.03.18
компоненты отображающие набор данных


15-1172230573
Cyrax
2007-02-23 14:36
2007.03.18
Индикатор клавиатуры языковой панели


2-1172479664
Darvin
2007-02-26 11:47
2007.03.18
Ошибки при чтении данных из COM-порта




   Наверх