
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.05.2006, 08:12
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
Хотелось бы, не изобретая велосипед, найти готовый класс, который бы реализовал понятие AREA из блаженной памяти PL1. Естесственно, там д быть понятие offset. Это для целей выгрузки списочных структур на диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.05.2006, 10:30
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
Тебе придется объяснить, что такое эта Эрия, или ждать, когда сюда совершенно случайно забредет знакток PL/1, который одновременно случайно знает и C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.05.2006, 16:36
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
Да, таких мало, но вдруг... PL1 имел понятие области (area) и можно было размещать там объекты. Использовалось также понятие offset - смещение чего либо относительно начала области. Типы указатель и offset допускали преобразование туда-сюда. В результате, разместив сложную систему списочных структур в области, я мог смело писать её на диск, т.к её можно было снова прочитать в область. Таким путём сериализация делалась оч. просто. Теперь же я сочиняю таблицы перемещений (как в старинных загрузчиках), чтобы восстановить значения указателей при чтении с диска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.05.2006, 18:22
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
А чем тебя не устраивает просто прочитать с диска пачку структур? В конце-концов, ты можешь себе выделить кусок памяти как void* и расценивать его как ту же самую "AREA" копируешь в него все что угодно, и достаешь потом оттуда данные используя базовый указатель как точку отсчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2006, 06:49
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
Структура(ы)могут содержать указатели. Указатель,скопированный на диск, теряет смысл. Придется вместо указателя выгружать смещения (указатель минус база). Затем при загрузке восстанавливать указатели (указатель=база+смещение). При выгрузке нужно запомнить где лежат указатели. (это и есть таблица перемещений). Как делать - давно ясно (и делал я это неоднократно). Но каждый раз это штучная работа. А задача то вроде типовая и многим должна бы потребоваться. Поэтому я и надеюсь, что кто-то это давно сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2006, 08:24
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
Если речь идет о VC++ то советую посмотреть как делается сериализация в VC++. IMPLEMENT_SERIAL, DECLARE_SERIAL, метод Serialize() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2006, 18:01
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
muk07Структура(ы)могут содержать указатели. Указатель,скопированный на диск, теряет смысл. Придется вместо указателя выгружать смещения (указатель минус база). Затем при загрузке восстанавливать указатели (указатель=база+смещение).Если есть нужда в подобном сохранении данных, значит надо забыть про указатели вообще и использовать только смещения. Вообще, я считаю эту задачу попыткой надевать трусы через голову. Намного проще и удобней записывать в файл только значащую часть структуры либо вообще не структуру, а отдельные поля. В игровых консолях которые делают сохранение состояния игры на "memcard" очень соблазнительно использовать подход AREA, потому что флешка практически отображается в общее адресное пространство. Что может быть в итоге проще чем один memmove(RAM_address, flash_base_address, sizeof(somestruct)); Однако, я ни разу не видел использование этого подхода, интересно почему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2006, 21:47
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
Хм... что-то это мне очень напоминает процесс свопирования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.05.2006, 07:14
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
В С++ есть указатели на член класса. Чем это не подходит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.05.2006, 08:18
|
|||
|---|---|---|---|
хочу аналог area из PL/1 |
|||
|
#18+
BarloneВ С++ есть указатели на член класса. Чем это не подходит ? и какое отношение это имеет к теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2031350]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 326ms |

| 0 / 0 |
