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

 
 
> Работа с блоками данных переменной длины, Изменение типа, удаление, добавление
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
Ответов
DpInRock
сообщение Oct 5 2008, 22:53
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А я бы остановился на алгоритме первоначальном.
Он, несмотря на кажущуюся неэффективность - лучший. Потому что дубовый. Стопроцентный.
Т.е. не требует какой-то отладки и поиска ошибок.

Единственное - скорость не слишком. И то - не факт.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:11
Рейтинг@Mail.ru


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