Page 1 of 1
внедрение raw - данных
Posted: Thu Sep 24, 2009 7:07 pm
by acousoft
Здравствуйте, здрово что есть русская ветвь.
Интересует вот что:
есть у меня проект под виндовс с .rc - файлом в котором огроменные массивы hex - данных, используемых программой (мин., макс., и дефолт значения параметров).
Программу эту перевел на wxWindows, стало быть, на другие платформы засматриваемся.
Подскажите разумный wx-способ внедрить эти данные в программу независимо от платформы, ведь ресурс-файлы, они только в винде...
Windows XP, Ubuntu 9.1, Code::Blocks, MinGW, wxWidgets 2.8
Re: внедрение raw - данных
Posted: Fri Sep 25, 2009 6:14 am
by tan
Привет,
acousoft wrote:Здравствуйте, здрово что есть русская ветвь.
Интересует вот что:
есть у меня проект под виндовс с .rc - файлом в котором огроменные массивы hex - данных, используемых программой (мин., макс., и дефолт значения параметров).
ну, как я понимаю, это что-то типа конфигурационных данных. Не очень понятны две вещи. 1 - по идее, конфигурационные данные должны настраиваться (ну, типа, дефолтные координаты/размеры фрейма и т.п.), не очень понятно как это может быть реализовано с rc файлами. 2 - почему эти данные такого большого объема (и какого именно?).
acousoft wrote:
Программу эту перевел на wxWindows, стало быть, на другие платформы засматриваемся.
Подскажите разумный wx-способ внедрить эти данные в программу независимо от платформы, ведь ресурс-файлы, они только в винде...
Windows XP, Ubuntu 9.1, Code::Blocks, MinGW, wxWidgets 2.8
Ну я использую для этого wxConfig. Для винды по умолчанию он использует реестр, но можно явно назначить использование конфигурационного файла. Возможно это не совсем подходит для хранения ОГРОМНЫХ массивов данных. Но в этом случае IMHO надо попробовать как-то реорганизовать структуру этих данных - большие массивы бинарных данных хранить в отдельных файлах, например, а в конфигурационных данных просто ссылку на файл.
Posted: Fri Sep 25, 2009 6:39 am
by acousoft
tan,
спасибо за ответ.
Эти данные не настраиваемые, это константы для работы с внешним устройством (какие значения могут принимать его параметры, а параметров очень много).
rc-файлы по 10-12 кБайт.
реализовано в виде raw - данных в виде байтов примерно таким образом:
Code: Select all
PS8ProtoMinValueId data
{
/* Element: kSceneComment */
0x0, 0x0, 0x0, 0x20 /*Index:kTitle1 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle2 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle3 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle4 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle5 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle6 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle7 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle8 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle9 */
,0x0, 0x0, 0x0, 0x20 /*Index:kTitle10*/
}
не смотрите что почти все нули - это таблица мин. значений.
Posted: Fri Sep 25, 2009 6:56 am
by tan
ОК, а что мешает для таких данных завести их просто в с-шном исходнике как массив байтов (в смысле как static unsigned char[] или как-то еще)? Примерно так же, как XPM файлы. Это будет абсолютно портабельно. На форуме где-то упоминались и готовые средства автоматизации для этого (генерирование с/c++ исходников из бинарных данных). Просто попробуй Search с ключевыми словами типа built-in binary data
Posted: Fri Sep 25, 2009 7:05 am
by acousoft
Наверное, так и придется сделать.
Как другое возможное решение, я читал где-то, что у wx есть своя система ресурсов на XML - она не позволяет подгружать в софт бинарные данные?
Posted: Fri Sep 25, 2009 7:23 am
by acousoft