On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.07 16:31. Заголовок: Object


Можно ли сохранить объект (напр. фонт) во внешнем файле ?

Спасибо: 0 
Цитата Ответить
Ответов - 7 [только новые]


постоянный участник


Пост N: 318
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.06.07 17:35. Заголовок: Re:


Обект, если можно так сказать, на физическом уровне состоит из массива, в котором хранятся рабочие данные объекта, и из методов. Методы для класса объекта "заводятся" в момент первого вызова, условно говоря, конструктора для объектов данного класса.
Следовательно, чтобы сохранить объект, нужно сохранить соответствующий массив. А при восстановлении объекта необходимо, чтобы методы объекта уже были созданы. Для этого достаточно создать любой объект данного класса, а затем переписать массив этого объекта сохраненным массивом.
Так что проблема, по существу, сводится к проблеме сохранения массивов. Это относится именно к объектам Clipper. Что касается объектов FiveWin, то я не знаю точную их "физику", но скорей всего описанного достаточно.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.07 18:47. Заголовок: Re:


не знаю точную их "физику", я могу уверенно заявить, что пыль это грязь лишенная воды..

Спасибо: 0 
Цитата Ответить
постоянный участник


Пост N: 319
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.06.07 19:55. Заголовок: Re:


Короче говоря, на мой взгляд достаточно сохранить массив.
Если вы имеете код

oMyObject := NewObject()

то oMyObject - это массив. Единственное, что отличает его от массива, - это сслыка в описатели типа массива на номер класса. Поэтому если у вас есть средство сохранения массивов, то с помощью него вы можете сохранять объекты.

Например,
oOldObject := NewObject()
.....

SaveArray( oOldObject )

....

oOldObject = RestArray()

Только важная деталь: востанавливать массив нужно поэлементно.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 157
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 06.06.07 22:03. Заголовок: Re:


fil пишет:

 цитата:
не знаю точную их "физику", я могу уверенно заявить, что пыль это грязь лишенная воды..




довольно спорное утверждение

Если используешь xHarbour посмотри tests\Serialize.prg

* Serialize.prg
* $Id: serialize.prg,v 1.11 2006/01/17 15:13:20 toninhofwi Exp $
* Test for the hb_serial family function
*
* This serialization functions allow to store consistently any
* basic datatype (including nested array) into a linear string,
* a file or any kind of stream. The functions are designed to be
* pretty fast and efficent, so that passing back and forth
* serialized data is not too burdensome.
*




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 709
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.06.07 22:13. Заголовок: Re:


lSaveObject( <oVar>, <cFile> [,<nOpenMode>] )

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.07 23:19. Заголовок: Re:


Большое спасибо !

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.06.07 09:10. Заголовок: Re:


fil пишет:

 цитата:
(напр. фонт


Дима тебе уже ответил, есть еще вариант типа -

oBlock = TBlock():New( "{ | cMsg | MsgInfo( cMsg ) }" )
oBlock:Eval( "CodeBlocks storables on disk!" )

Но кроме фонта тебе наверное потребуется еще что-то сохранять? :))
Удобно использовать INI файлы. Глянь в примерчиках, там достаточно хорошо все видно





Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 96
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет