powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / хочу аналог area из PL/1
11 сообщений из 11, страница 1 из 1
хочу аналог area из PL/1
    #33705601
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы, не изобретая велосипед, найти готовый класс, который бы реализовал понятие AREA из блаженной памяти PL1. Естесственно, там д быть понятие offset.
Это для целей выгрузки списочных структур на диск.
...
Рейтинг: 0 / 0
хочу аналог area из PL/1
    #33705960
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе придется объяснить, что такое эта Эрия, или ждать, когда сюда совершенно случайно забредет знакток PL/1, который одновременно случайно знает и C++.
...
Рейтинг: 0 / 0
хочу аналог area из PL/1
    #33707629
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, таких мало, но вдруг...

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

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


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