Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / хочу аналог area из PL/1 / 11 сообщений из 11, страница 1 из 1
04.05.2006, 08:12
    #33705601
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
Хотелось бы, не изобретая велосипед, найти готовый класс, который бы реализовал понятие AREA из блаженной памяти PL1. Естесственно, там д быть понятие offset.
Это для целей выгрузки списочных структур на диск.
...
Рейтинг: 0 / 0
04.05.2006, 10:30
    #33705960
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
Тебе придется объяснить, что такое эта Эрия, или ждать, когда сюда совершенно случайно забредет знакток PL/1, который одновременно случайно знает и C++.
...
Рейтинг: 0 / 0
04.05.2006, 16:36
    #33707629
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
Да, таких мало, но вдруг...

PL1 имел понятие области (area) и можно было размещать там объекты. Использовалось также понятие offset - смещение чего либо относительно начала области. Типы указатель и offset допускали преобразование туда-сюда.
В результате, разместив сложную систему списочных структур в области, я мог смело писать её на диск, т.к её можно было снова прочитать в область. Таким путём сериализация делалась оч. просто.
Теперь же я сочиняю таблицы перемещений (как в старинных загрузчиках), чтобы восстановить значения указателей при чтении с диска.
...
Рейтинг: 0 / 0
04.05.2006, 18:22
    #33708043
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
А чем тебя не устраивает просто прочитать с диска пачку структур?
В конце-концов, ты можешь себе выделить кусок памяти как void* и расценивать его как ту же самую "AREA" копируешь в него все что угодно, и достаешь потом оттуда данные используя базовый указатель как точку отсчета.
...
Рейтинг: 0 / 0
05.05.2006, 06:49
    #33708706
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
Структура(ы)могут содержать указатели.
Указатель,скопированный на диск, теряет смысл.
Придется вместо указателя выгружать смещения (указатель минус база).
Затем при загрузке восстанавливать указатели (указатель=база+смещение).
При выгрузке нужно запомнить где лежат указатели. (это и есть таблица перемещений).
Как делать - давно ясно (и делал я это неоднократно).
Но каждый раз это штучная работа.
А задача то вроде типовая и многим должна бы потребоваться.
Поэтому я и надеюсь, что кто-то это давно сделал.
...
Рейтинг: 0 / 0
05.05.2006, 08:24
    #33708780
AndreiNz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
Если речь идет о VC++ то советую посмотреть как делается сериализация в VC++. IMPLEMENT_SERIAL, DECLARE_SERIAL, метод Serialize()
...
Рейтинг: 0 / 0
05.05.2006, 18:01
    #33711274
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
muk07Структура(ы)могут содержать указатели.
Указатель,скопированный на диск, теряет смысл.
Придется вместо указателя выгружать смещения (указатель минус база).
Затем при загрузке восстанавливать указатели (указатель=база+смещение).Если есть нужда в подобном сохранении данных, значит надо забыть про указатели вообще и использовать только смещения.
Вообще, я считаю эту задачу попыткой надевать трусы через голову.
Намного проще и удобней записывать в файл только значащую часть структуры либо вообще не структуру, а отдельные поля.

В игровых консолях которые делают сохранение состояния игры на "memcard" очень соблазнительно использовать подход AREA, потому что флешка практически отображается в общее адресное пространство. Что может быть в итоге проще чем один memmove(RAM_address, flash_base_address, sizeof(somestruct)); Однако, я ни разу не видел использование этого подхода, интересно почему :)
...
Рейтинг: 0 / 0
05.05.2006, 21:47
    #33711643
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
Хм... что-то это мне очень напоминает процесс свопирования
...
Рейтинг: 0 / 0
06.05.2006, 07:14
    #33711914
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
В С++ есть указатели на член класса. Чем это не подходит ?
...
Рейтинг: 0 / 0
06.05.2006, 08:18
    #33711967
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
BarloneВ С++ есть указатели на член класса. Чем это не подходит ?
и какое отношение это имеет к теме?
...
Рейтинг: 0 / 0
06.05.2006, 14:40
    #33713210
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу аналог area из PL/1
А, ну да, недопонял чего хотелось (PL/1 знал но забыл :) ).
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / хочу аналог area из PL/1 / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]