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

start [/forum/topic.php?fid=57&msg=33708706&tid=2031350]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 461ms |

| 0 / 0 |
