powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Мини субд для сохранения координатов элементов 3D графики.
6 сообщений из 6, страница 1 из 1
Мини субд для сохранения координатов элементов 3D графики.
    #38108774
manking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли быстрое решение для текущей задачи?

Описание:
Сейчас координаты gui вписаны прямо в программу.
например
draw_image(X=50 , Y = 20 , id="картинка часы")
draw_text(X=70 , Y = 20 , id="текущее время")

Есть идея сделать систему "то что вижу, то и происходит" визуальный редактор.

Нажимаю F5, перетаскиваю изображение id="картинка часы" вниз экрана.
Теперь X==250 Y==500.

Вот теперь мне нужно вызвать функцию мини субд
СУБД writer;


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
writer.save_disc(X=250 Y=500. , id="картинка часы");

Далее  когда нужно нарисовать объект
я проверяю например так:

if(writer.has_data( "картинка часы")==true)
{
draw_image(writer.get_data( "картинка часы")->X , get_data( "картинка часы")->Y , id="картинка часы");
}
else{
draw_image(X=50 , Y = 20 , id="картинка часы");
}



Важно чтобы эта субд поддерживала автоматическую или удобную систему резервного копирования для сохранности данных и возможности поиска по архиву.
Я думаю нечто подобное точно должно быть(boost??).
Ооооооочень не хочется с нуля писать.
...
Рейтинг: 0 / 0
Мини субд для сохранения координатов элементов 3D графики.
    #38108851
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mankingЕсть ли быстрое решение для текущей задачи?

Описание:
Сейчас координаты gui вписаны прямо в программу.
например
draw_image(X=50 , Y = 20 , id="картинка часы")
draw_text(X=70 , Y = 20 , id="текущее время")

Есть идея сделать систему "то что вижу, то и происходит" визуальный редактор.

Нажимаю F5, перетаскиваю изображение id="картинка часы" вниз экрана.
Теперь X==250 Y==500.

Вот теперь мне нужно вызвать функцию мини субд
СУБД writer;


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
writer.save_disc(X=250 Y=500. , id="картинка часы");

Далее  когда нужно нарисовать объект
я проверяю например так:

if(writer.has_data( "картинка часы")==true)
{
draw_image(writer.get_data( "картинка часы")->X , get_data( "картинка часы")->Y , id="картинка часы");
}
else{
draw_image(X=50 , Y = 20 , id="картинка часы");
}

Наверное SQLight подойдет. Песплатна с исходниками.

Важно чтобы эта субд поддерживала автоматическую или удобную систему резервного копирования для сохранности данных и возможности поиска по архиву.
Я думаю нечто подобное точно должно быть(boost??).
Ооооооочень не хочется с нуля писать.
...
Рейтинг: 0 / 0
Мини субд для сохранения координатов элементов 3D графики.
    #38108993
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 01/14/2013 10:07 AM, manking wrote:

> Есть ли быстрое решение для текущей задачи?

Подозреваю, что эта мини-СУБД есть ни что иное, как
std::map< std::string, void* >


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Мини субд для сохранения координатов элементов 3D графики.
    #38109273
manking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПодозреваю, что эта мини-СУБД есть ни что иное, как
std::map< std::string, void* >


Ну да.

Сейчас нашел парсер xml. Сама работа с записью структуры данных в формат xml быстрая. Но придется писать создание каталогов по дате, поиск последней базы , проверку на безопасную работу из разных потоков и т.д.

http://www.firstobject.com/dn_markup.htm
CMarkup

То есть мне нужен конкретный прикладной инструмент для
хранения уникальных секций, в которых есть переменные и значения, на диске.
То есть подошел бы формат
std::map<std::string , std::map<std::string , std::string>> data;
если бы мог хранить данные на диске самостоятельно.

C sqlite и другой полноценной субд много возни.
...
Рейтинг: 0 / 0
Мини субд для сохранения координатов элементов 3D графики.
    #38109300
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mankingC sqlite и другой полноценной субд много возни.
Просто с твоим примером возня перетекает из сферы SQL в обилие if(..) else ...;
Думал об этом?
...
Рейтинг: 0 / 0
Мини субд для сохранения координатов элементов 3D графики.
    #38109385
manking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonmankingC sqlite и другой полноценной субд много возни.
Просто с твоим примером возня перетекает из сферы SQL в обилие if(..) else ...;
Думал об этом?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Вот примерный пример как можно было бы использовать map в данном случаи.

// здесь он создаётся в памяти и пуст, а мне нужно чтобы он восстановил старое состояние
std::map< std::string , std::map<std::string , std::string> > глобальная_data;




void draw_image(int X , int Y , std::string id)
{

// здесь проверка существования настроек для этого id
if(глобальная_data.count(id)>0)
{
X = глобальная_data[id]["X"];
Y = глобальная_data[id]["Y"];
}
else
{
глобальная_data[id]["X"]=X;
глобальная_data[id]["Y"]=Y;
}

drawing
...
drawing

}



void изменить_положение_картинки(int X , int Y , std::string id)
{
глобальная_data[id]["X"]=X;
глобальная_data[id]["Y"]=Y;
}


int main()
{


// основной цикл
while(5>3)
{

...
draw_image(100 , 200 , "картинка 1");
draw_image(100 , 400 , "картинка 2");
...


// на 500 цикле перемещаем изображение
if(цикл == 500)
{
изменить_положение_картинки(120 , 700 , "картинка 1");
}

};
};
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Мини субд для сохранения координатов элементов 3D графики.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]