OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 06:20

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: Среда, 12 Март, 2014 00:22 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Илья Ермаков писал(а):
Я когда-то делал тупо "двоичный дамп" записи в Files.File.
Где-то даже публиковал на форуме, но не ищется!!
Что несложно сделать через Kernel и Type.size.

Процедуры ReadRec/WriteRec, ReadTagged/WriteTagged.
Последние отличались тем, что до собственно данных записи клали 64-бит фингепринт типа.
При чтении проверялось соответствие фингерприта типу RECORD-а, в который пытаемся считывать.

Это он?
Вложение:
File_Reader.cp.txt [2.35 КБ]
Скачиваний: 681


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Март, 2014 01:16 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ага, это оно :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Март, 2014 13:10 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Илья Ермаков писал(а):
Я когда-то делал тупо "двоичный дамп" записи в Files.File.
Где-то даже публиковал на форуме, но не ищется!!
Что несложно сделать через Kernel и Type.size.

viewtopic.php?f=2&t=2006


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Март, 2014 16:08 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Роман М. писал(а):
Пётр Кушнир писал(а):
Не, суть именно в том, что это структура типа массива. Нужно хранение в массиве всяких структур. Допустим оно будет.
А далее интересно, как там должно быть, например, с обработкой массива, который того и гляди изменится.

Тогда можно взять на вооружение метод наподобие тегирования структур в компиляторе КП.
Вместе с данными будут отправляться также служебные данные. Каждому тегу соответствует свой тип данных. Перед отправкой структуры данных подписчикам она сначала описывается с помощью тегов. Таким образом, приёмник будет знать в каком формате эти данные пришли и как их раскодировать.

Допускается ли применение вложенных структур?
Не, ничего никуда не будет отправляться. Представьте себе что у двух ББ есть общая область памяти, и когда вы в одном ББ делаете SYSTEM.PUT, то в другом вы делаете SYSTEM.GET и получаете записанное ранее значение. Над этой памятью оформлена реализация абстракции Files.File. То есть у вас есть общий файл. Теперь надо в этот файл писать байты так, чтобы на той стороне поняли смысл этих байтов.
На первый взгляд, Stores это один из вариантов такого понятного объекта. И задача состоит в том, чтобы реализовать такую параллельную структуру данных, которой просто пользоваться, примерно как массивом или коллекцией.

Для этого нужна коллекция, которая не будет использовать указатели и прочее, но работать будет как обычная коллекция. Вот я и спросил.
Илья Ермаков писал(а):
Я когда-то делал тупо "двоичный дамп" записи в Files.File.
Где-то даже публиковал на форуме, но не ищется!!
Что несложно сделать через Kernel и Type.size.
Этот вариант хороший и быстрый, но не позволит подключать к общей памяти другие платформы, отличные от ББ, тот же GPCP. Хотя, может это и не нужно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Март, 2014 19:44 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Пётр Кушнир писал(а):
Представьте себе что у двух ББ есть общая область памяти, и когда вы в одном ББ делаете SYSTEM.PUT, то в другом вы делаете SYSTEM.GET и получаете записанное ранее значение.
Мой вопрос состоит в том каким образом приёмник узнает, что в файл было записано новое значение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Март, 2014 19:53 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Но ведь это просто массив. Если вам не нужна информация из массива, вы к нему не обращаетесь. А если нужна - обращаетесь. Вас же массив не информирует об изменениях.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB