forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Модули для BlitzMax (http://forum.boolean.name/forumdisplay.php?f=105)
-   -   запись\чтение любого БМ обьекта. (http://forum.boolean.name/showthread.php?t=13956)

Черный крыс 28.12.2010 17:23

запись\чтение любого БМ обьекта.
 
Вложений: 1
Модуль юзает отражатель (brl.Reflection)

Данный модуль будет полезен для сохранения и загрузки игрового состояния (загрузить игру, сохранить игру - если тривиально). Вобсчем видел я буржуйский модуль, но тама он был жутко убогим, не умел сохранять\грузить многомерные массивы, не было оптимизации, и не было динамической поддержки композитных обьектов.

***здесь есть все (с)***
На то он и есть Reflector (c)
юзайте на здоровье.
докладывайте о багах сюда.

JeanWinters 28.12.2010 17:28

Ответ: запись\чтение любого БМ обьекта.
 
Если честно, то особо не ясна "полезность" отражения. В описании одна вода, что можно делать ссылку (указатель) на тип и еще какая-то писанина, которую перевел и еще меньше понял, чем оригинал. :-)

Черный крыс 28.12.2010 17:36

Ответ: запись\чтение любого БМ обьекта.
 
оно дает программисту получить полное описание типа не зная при этом к какому типу принадлежит подопытный обьект.

JeanWinters 28.12.2010 17:57

Ответ: запись\чтение любого БМ обьекта.
 
Может возвратить название типа в переменную? Т.е. это не кастинг уже? Хотя, я еще читал, что можно использовать отражение, чтобы "классы сами себя писали динамически".

Reizel 28.12.2010 21:08

Ответ: запись\чтение любого БМ обьекта.
 
Мм...Все объекты тупо пишем в файл, потом при загрузке загружаем...гм, забавно :)

ABTOMAT 28.12.2010 21:25

Ответ: запись\чтение любого БМ обьекта.
 
Вопрос: а ссылки внутри объектов на объекты после схоронения/загрузки не помирают ли?

Мимо проходил.

SBJoker 28.12.2010 22:59

Ответ: запись\чтение любого БМ обьекта.
 
Должны помирать, и вообще метод очень грубый.

SBJoker 28.12.2010 22:59

Ответ: запись\чтение любого БМ обьекта.
 
Это так вообще можно память блоками дампать

Черный крыс 13.01.2011 18:52

Ответ: запись\чтение любого БМ обьекта.
 
<ЦИТАТА> Должны помирать, и вообще метод очень грубый. </ЦИТАТА>

Во первых ссылки не помирают, но если они зациклены - то это черевато зависанием. Если существует зацикленная структура данных - то грузите и сохраняйте отдельными функциями, яркий пример - стандартный TList. - Это все называется "Запись\Чтение композитных обьектов" - это когда внутри обьекта находятся другие обьекты. Смотрите []блин[/] сам модуль, и тогда все вопросы отпадут.

Насчет 2-го...

Ничего грубого в этом методе я не узрел. Большинство приложений пишут и грузят именно таким способом (смотри либу "universal save SDK"). Марк сделал аналог этой либы и назвал рефлекшн. =)


Часовой пояс GMT +4, время: 10:24.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot