Показать сообщение отдельно
Старый 25.05.2006, 12:47   #1   
Роман
 
Аватар для timex
 
Сообщений: 429
Регистрация: 04.06.2004
Возраст: 41

timex вне форума Не в сети
алгоритм поиска в записях переменной длины

Подскажите, а существует алгоритм поиска в базе данных, у которой длина одного поля в каждой записи имеет разную длину. Т.е. длина каждой записи - разная

Нужно для реализации в микроконтроллере, а сама база хранится во флешке, ёмкость которой ограничена.

известно количество записей, длина в байтах всей базы, и содержимое поля1 - вводимое юзером.


вот база:
поле1 - упорядоченные записи фиксированной длины. тип - целое. по нему и осуществляется поиск
поле2 - текстовое поле переменной длины. его и нужно найти. длина его для каждой записи известна, и может хранится перед этим полем или в самом начале записи
поле3 - целое число (1 байт). его тоже нужно найти.

если необходимо, то можно добавить ещё и ID - порядковый номер записи, начиная с 1.
ну, естественно, длина записи также известна и может храниться, например, в начале каждой записи.

поле1 поле2 поле3
----- ----- -----
394000 тексттексттексттекст 1
394043 тексттекст 1
394087 текст 1
450034 тексттексттексттексттексттекст 1
450120 тексттекст 2
634004 текст 2
646445 текст 1
664503 тексттекст 2
673094 тексттексттексттекст 1
684933 текст 2

и т.д.

всего записей - порядка 45000.

допустим нужно найти запись, у которой первое поле = 394087

как?

если что - мой icq 290511085
  Ответить с цитированием