внедрение raw - данных Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
acousoft
In need of some credit
In need of some credit
Posts: 8
Joined: Mon Jan 26, 2009 1:21 pm

внедрение raw - данных

Post by acousoft » Thu Sep 24, 2009 7:07 pm

Здравствуйте, здрово что есть русская ветвь.

Интересует вот что:

есть у меня проект под виндовс с .rc - файлом в котором огроменные массивы hex - данных, используемых программой (мин., макс., и дефолт значения параметров).

Программу эту перевел на wxWindows, стало быть, на другие платформы засматриваемся.

Подскажите разумный wx-способ внедрить эти данные в программу независимо от платформы, ведь ресурс-файлы, они только в винде...

Windows XP, Ubuntu 9.1, Code::Blocks, MinGW, wxWidgets 2.8

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Re: внедрение raw - данных

Post by tan » Fri Sep 25, 2009 6:14 am

Привет,
acousoft wrote:Здравствуйте, здрово что есть русская ветвь.

Интересует вот что:

есть у меня проект под виндовс с .rc - файлом в котором огроменные массивы hex - данных, используемых программой (мин., макс., и дефолт значения параметров).
ну, как я понимаю, это что-то типа конфигурационных данных. Не очень понятны две вещи. 1 - по идее, конфигурационные данные должны настраиваться (ну, типа, дефолтные координаты/размеры фрейма и т.п.), не очень понятно как это может быть реализовано с rc файлами. 2 - почему эти данные такого большого объема (и какого именно?).
acousoft wrote: Программу эту перевел на wxWindows, стало быть, на другие платформы засматриваемся.

Подскажите разумный wx-способ внедрить эти данные в программу независимо от платформы, ведь ресурс-файлы, они только в винде...

Windows XP, Ubuntu 9.1, Code::Blocks, MinGW, wxWidgets 2.8
Ну я использую для этого wxConfig. Для винды по умолчанию он использует реестр, но можно явно назначить использование конфигурационного файла. Возможно это не совсем подходит для хранения ОГРОМНЫХ массивов данных. Но в этом случае IMHO надо попробовать как-то реорганизовать структуру этих данных - большие массивы бинарных данных хранить в отдельных файлах, например, а в конфигурационных данных просто ссылку на файл.
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

acousoft
In need of some credit
In need of some credit
Posts: 8
Joined: Mon Jan 26, 2009 1:21 pm

Post by acousoft » Fri Sep 25, 2009 6:39 am

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*/
}
не смотрите что почти все нули - это таблица мин. значений.

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan » Fri Sep 25, 2009 6:56 am

ОК, а что мешает для таких данных завести их просто в с-шном исходнике как массив байтов (в смысле как static unsigned char[] или как-то еще)? Примерно так же, как XPM файлы. Это будет абсолютно портабельно. На форуме где-то упоминались и готовые средства автоматизации для этого (генерирование с/c++ исходников из бинарных данных). Просто попробуй Search с ключевыми словами типа built-in binary data
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

acousoft
In need of some credit
In need of some credit
Posts: 8
Joined: Mon Jan 26, 2009 1:21 pm

Post by acousoft » Fri Sep 25, 2009 7:05 am

Наверное, так и придется сделать.

Как другое возможное решение, я читал где-то, что у wx есть своя система ресурсов на XML - она не позволяет подгружать в софт бинарные данные?

acousoft
In need of some credit
In need of some credit
Posts: 8
Joined: Mon Jan 26, 2009 1:21 pm

Post by acousoft » Fri Sep 25, 2009 7:23 am

этот топик описывает нечто похожее:

http://forums.wxwidgets.org/viewtopic.p ... inary+data

Post Reply