реклама на сайте
подробности

 
 
> Работа с блоками данных переменной длины, Изменение типа, удаление, добавление
SZ0
сообщение Oct 5 2008, 18:58
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Стоит задача.
Обработка блоков данных, при этом блоки могут быть разных размеров, у каждого блока 1й байт определяет его тип, по которому мы знаем его размер. Любой блок может быть стёрт или изменён на другой тип.

Проблема и решения.
Перемещение на N блок для его обработки: номер блока собираюсь расчитывать от 1го, т.е. узнаем размер 1го, перешли ко 2му, узнали его размер и так далее.
Стирание блока: выясняем размер по типу следующего за ним блока, сдвигаем на пустое место которое очистил блок, потом следущий за ним и так до последнего блока.
Изменения типа: перед изменением программа оценивает сколько памяти осталось, и в зависимости от выбранного нового типа блока все блоки после изменнённого либо отодвигаются от него либо пододвгаются к нему.

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

Данные будут размещаться в РАМ ATmega2560 и там же обрабатываться, и все сохраняться/считываться из его eeprom при запуске
и сохраняться после настройки в РАМ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MMos
сообщение Oct 6 2008, 06:48
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 7-12-07
Пользователь №: 33 057



У одного персонажа детской литературы (медика по профессии) был универсальный рецепт: "Касторка и йод!" Автору вопроса я бы в подобном стиле прописал: "Кластеры и таблица размещения!" Для более подробного совета нужна дополнительная информация.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016