Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2012, 16:16   #1
Novosad
Новичок
Джуниор
 
Регистрация: 18.08.2012
Сообщений: 1
По умолчанию Функция сортировки базы данных sqlite (C++)

Здравствуйте господа.
Пытаюсь определить связь между двумя таблицами базы данных sqlite.
Строкой EA_X тут


и PRI_EA_Y тут


Связь происходит в программе

Вытянул через IDA pro и Hex Rays

Код:
int __thiscall eLocalDatabaseOptimizer::Init_MainFunctions(void *this)

 v16 = (int)this;
  v9 = (int)this;
  v23 = &v9;
  v15 = mfc90u_286(&v9, L"qc");
  v1 = eManager::GetManOptions(*(_DWORD *)(v16 + 4));
  v14 = ManOptions::GetInteger((void *)v1, v9);
  v46 = v14;
  v9 = v14;
  v22 = &v9;
  v13 = mfc90u_286(&v9, L"q");
  v2 = eManager::GetManOptions(*(_DWORD *)(v16 + 4));
  v12 = ManOptions::GetInteger((void *)v2, v9);
  v45 = v12;
  if ( *(_BYTE *)(v16 + 8) )
  {
    v21 = dword_5A5CD8;
    mfc90u_801(dword_5A5CD8);
    dword_5A5CD8 = 0;
    v20 = dword_5A5CD4;
    mfc90u_801(dword_5A5CD4);
    dword_5A5CD4 = 0;
  }
  if ( v45 == -666666 )
  {
    v9 = 4 * v46 + 8;
    dword_5A5CD8 = (int)malloc(v9);
    v9 = 4 * v46 + 8;
    dword_5A5CD4 = (int)malloc(v9);
    for ( i = 0; i <= v46; ++i )
    {
      *(_DWORD *)(dword_5A5CD8 + 4 * i) = i + 1;
      *(_DWORD *)(dword_5A5CD4 + 4 * i) = i + 1;
    }
  }
  else
  {
    v42 = (int)malloc(4 * v46);
    Seminumerical::Seminumerical((int)&v43, v45);
    Seminumerical::get_array(&v43, v42, (int)&dword_5A5CD8, (int)&dword_5A5CD4, v46);
    v19 = v42;
    mfc90u_801(v42);
    v42 = 0;
    Seminumerical::_Seminumerical((int)&v43);
  }
  if ( !*(_BYTE *)(v16 + 8) )
    *(_BYTE *)(v16 + 8) = 1;
  if ( !*(_BYTE *)(v16 + 9) )
  {
    v9 = 0;
    v3 = eManager::GetManLBox(*(_DWORD *)(v16 + 4));
    v11 = ManLBox::_GetUnsafeLBox((void *)v3, v9);
    v40 = (*(int (__thiscall **)(int))(*(_DWORD *)v11 + 64))(v11);
    v41 = 0;
    v33 = (int)"get_eax";
    v34 = 1;
    v35 = 5;
    v36 = 0;
    v37 = sub_52FF80;
    v38 = 0;
    v39 = 0;
    v9 = (int)&v33;
    v41 = (*(int (__thiscall **)(int, signed int, int *))(*(_DWORD *)v40 + 32))(v40, 2, &v33);
    v18 = v41;
    mfc90u_801(v41);
    v41 = 0;
    v40 = 0;
    *(_BYTE *)(v16 + 9) = 1;
  }
  result = v16;
  if ( !*(_BYTE *)(v16 + 10) )
  {
    v9 = 0;
    v5 = eManager::GetManLBox(*(_DWORD *)(v16 + 4));
    v6 = ManLBox::_GetUnsafeLBox((void *)v5, v9);
    v10 = v6;
    v7 = (*(int (__thiscall **)(int))(*(_DWORD *)v6 + 64))(v6);
    v31 = v7;
    v32 = 0;
    v24 = (int)"get_eay";
    v25 = 1;
    v26 = 5;
    v27 = 0;
    v28 = sub_52FFB0;
    v29 = 0;
    v30 = 0;
    v9 = (int)&v24;
    v8 = (*(int (__thiscall **)(int, signed int, int *))(*(_DWORD *)v7 + 32))(v7, 2, &v24);
    v32 = v8;
    v17 = v8;
    result = mfc90u_801(v8);
    *(_BYTE *)(v16 + 10) = 1;
  }
  return result;
}
Тянет переменные "qc" и "q" из таблицы


переменная "qс" равна максимальному значению "EA_X" и "PRI_EA_Y"
Но таблицы отсортированы кодом вверху, как же программа знает что на своем месте а что нет?
переменная "q" - "ключ" сортировки, или что то подобное, так как при изменении "q" - все внутри программы снова перемешивается.

Хочу полностью сопоставить значения и обоих таблиц, но не хватает опыта. Заранее спасибо
Novosad вне форума Ответить с цитированием
Старый 04.01.2013, 23:55   #2
stomat
Новичок
Джуниор
 
Регистрация: 04.01.2013
Сообщений: 1
По умолчанию знаком с вашей программой

знаком с вашей программой также интересуюсь тем-же вопрсом, если есть результат прошу связаться nanotrade3000@gmail.com
stomat вне форума Ответить с цитированием
Старый 11.05.2013, 00:26   #3
elimar
Новичок
Джуниор
 
Регистрация: 20.08.2011
Сообщений: 1
По умолчанию

Кто-то нашел решение?
Есть функция get_eay, но что она делает?
elimar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция сортировки в файле Артём Волжанкин Помощь студентам 7 20.07.2012 19:55
С++. Функция сортировки списка по значению Caged Помощь студентам 0 02.11.2011 21:01
Выбор хранилища данных - XML или SQLite? Lindemann66 C/C++ Базы данных 9 02.08.2011 18:19
функция сортировки массива работает не верно DroZd911 Помощь студентам 1 18.02.2011 05:33
Импорт тегов из файлов формата mp3 в базу данных sqlite antonych SQL, базы данных 2 06.12.2009 21:06