Форум программистов, компьютерный форум CyberForum.ru

Способ прочитать файл с базой данных - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
25.11.2013, 10:58     Способ прочитать файл с базой данных #1
есть база данных в формате .dat
есть файл с структурами и типами в формате .h

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

Добавлено через 36 минут
формат .data... прошу прощение
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 10:58     Способ прочитать файл с базой данных
Посмотрите здесь:

Работа с базой данных C++
Данные записать в файл F1.txt, затем прочитать оттуда, обрабатывались и записывались в бинарный файл F2.bin с проверкой C++
C++ самый короткий способ открыть файл
C++ Способ вывода данных на экран
C++ как можно прочитать файл в обратном порядке т.е. стать в конец файла и прочитать до начальной позиции?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.11.2013, 15:44     Способ прочитать файл с базой данных #21
gazlan, и что это?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
25.11.2013, 15:49  [ТС]     Способ прочитать файл с базой данных #22
смещение 141байт... но как пропустить их?

Добавлено через 1 минуту
если структуру создать так... читается корректно.. но в этой структуре много элементов
C++
1
2
3
4
5
6
7
8
9
10
struct EQUIPMENT_ADDON {
    char a [141];
    int id;
    wchar_t name[32];
    int type;
    int num_params;
    int param1;
    int param2;
    int param3;
};
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
25.11.2013, 15:51     Способ прочитать файл с базой данных #23
Цитата Сообщение от kazak Посмотреть сообщение
что это
Таблица нормализованных (per 10,000) частотностей символов.

Удобна для быстрой оценки типа файла: text/binary/compressed(encrypted) etc.
newbie666
Заблокирован
25.11.2013, 15:52     Способ прочитать файл с базой данных #24
char tmp[141];
fs.read(tmp, sizeof(tmp));

так пропускай
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.11.2013, 15:56     Способ прочитать файл с базой данных #25
Цитата Сообщение от newbie666 Посмотреть сообщение
char tmp[141];
fs.read(tmp, sizeof(tmp));
так пропускай
C++
1
fs.seekg(141, ios_base::beg);
newbie666
25.11.2013, 15:58
  #26

Не по теме:

Цитата Сообщение от kazak Посмотреть сообщение
fs.seekg(141, ios_base::beg);
ну или так пропускай

lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
25.11.2013, 16:07  [ТС]     Способ прочитать файл с базой данных #27
и куда это вставить??
newbie666
Заблокирован
25.11.2013, 16:11     Способ прочитать файл с базой данных #28
ну как куда, перед чтением твоей структуры из файла, тоесть открыл файловый поток, указатель в самом начале, сдвигаешь его и потом начинаешь читать:
C++
1
2
3
fs.seekg(141, ios_base::beg);
fs.read((char*)&item, sizeof(item));
fs.close();
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
25.11.2013, 16:16  [ТС]     Способ прочитать файл с базой данных #29
Цитата Сообщение от newbie666 Посмотреть сообщение
ну как куда, перед чтением твоей структуры из файла, тоесть открыл файловый поток, указатель в самом начале, сдвигаешь его и потом начинаешь читать:
C++
1
2
3
fs.seekg(141, ios_base::beg);
fs.read((char*)&item, sizeof(item));
fs.close();
C++
1
2
3
4
5
6
    if(fs.is_open())
    {
        fs.seekg(141, ios_base::beg);
        fs.read((char*)&item, sizeof(item));
        fs.close();
    }
не работает так

Добавлено через 4 минуты
если в структуре указать char a [141]
то норм... а так не работает(
newbie666
Заблокирован
25.11.2013, 16:20     Способ прочитать файл с базой данных #30
Цитата Сообщение от lips Посмотреть сообщение
если в структуре указать char a [141]
так там таких же ячеек с информацией у тебя много в файле, ты так только первую прочитаешь нормално

Добавлено через 30 секунд
а так работает ?
char tmp[141];
fs.read(tmp, sizeof(tmp));
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
25.11.2013, 16:23  [ТС]     Способ прочитать файл с базой данных #31
144 пришлось поставить, получилось

Добавлено через 1 минуту
всем большое спасибо за помощь!
newbie666
Заблокирован
25.11.2013, 16:25     Способ прочитать файл с базой данных #32
Цитата Сообщение от lips Посмотреть сообщение
144 пришлось поставить, получилось
ну вот видишь, тебя не правильно проинформировали о размере заголовка. препода в ад
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
25.11.2013, 17:51     Способ прочитать файл с базой данных #33
TS всех обманул :-)

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

C++
1
2
3
4
5
6
7
8
9
10
struct EL_RECORD
{
   int            _Type;
   int            _NumParams;
   DWORD          _dwID;
   char           _pszText[MAX_TEXT_SIZE];
   int            _Param1;
   int            _Param2;
   int            _Param3;
};
Размер заголовка - 0x87

В эташе дамп для 7,000+ записей, дальше формат уже другой.
Вложения
Тип файла: 7z elements.txt.7z (90.9 Кб, 1 просмотров)
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
26.11.2013, 08:55  [ТС]     Способ прочитать файл с базой данных #34
Цитата Сообщение от gazlan Посмотреть сообщение
В эташе дамп для 7,000+ записей, дальше формат уже другой.
там дальше другие структуры.... они описаны в файле...
мне надо создать указатель на список структур
подскажите что нужно для этого?
newbie666
Заблокирован
26.11.2013, 11:18     Способ прочитать файл с базой данных #35
Цитата Сообщение от lips Посмотреть сообщение
там дальше другие структуры.... они описаны в файле...
полное описание давай сюда, гадать что в твоё файле - не благодарное занятие
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
26.11.2013, 11:24  [ТС]     Способ прочитать файл с базой данных #36
Цитата Сообщение от newbie666 Посмотреть сообщение
полное описание давай сюда, гадать что в твоё файле - не благодарное занятие
пытаюсь написать программу чтобы достать из бинарного файла данные для заполнения этих структур
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
26.11.2013, 11:26  [ТС]     Способ прочитать файл с базой данных #37
если нужно вот бинарный файл и структуры... но мне желательно только подсказать как лучше это сделать...
Вложения
Тип файла: rar qqq.rar (1.96 Мб, 6 просмотров)
newbie666
Заблокирован
26.11.2013, 11:33     Способ прочитать файл с базой данных #38
оо парень да ты попал, это ж такой геморой тебе каждую структуру по отдельности читать., а где хранить потом ...да ваще бредятина. Смысл такой. Объявляешь структуру и читаешь из поток read-м столько байт, сколько весит структура, что из потока считал - этого уже там нет, так что чтоб тебе считать следующую структуру - тебе ничего делать особенного не надо, дальше из потока читаешь столько байт, сколько весит твоя следующая структура вот и в всё
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
26.11.2013, 12:30  [ТС]     Способ прочитать файл с базой данных #39
Цитата Сообщение от newbie666 Посмотреть сообщение
оо парень да ты попал, это ж такой геморой тебе каждую структуру по отдельности читать., а где хранить потом ...да ваще бредятина. Смысл такой. Объявляешь структуру и читаешь из поток read-м столько байт, сколько весит структура, что из потока считал - этого уже там нет, так что чтоб тебе считать следующую структуру - тебе ничего делать особенного не надо, дальше из потока читаешь столько байт, сколько весит твоя следующая структура вот и в всё
по одной структуре читается много таблиц.... как узнать когда закончилась одна и началась другая структура?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 13:09     Способ прочитать файл с базой данных
Еще ссылки по теме:

составить программу,которая создает файл, состоящий из 10 значений типа int. прочитать файл и вычислить сумму его элементов C++
Открыть файл, прочитать. Все, что находится после двоеточия перенести в другой файл C++
C++ Прочитать файл

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
newbie666
Заблокирован
26.11.2013, 13:09     Способ прочитать файл с базой данных #40
Ну ты понимаешь, что такое файловый поток?
Вот смотри, ты открыл файл файловым потоком fstream, у тебя в потоке все данные файла и указатель текущей позиции на нуле, то есть, например, ты открыл поток с каким то содержанием и у тебя получилась вот такая кишка:
1234567890ABCDF и тд, это байты или данные какие то твои в потоке,
после того, как ты оттуда прочитал например 3 байта, у тебя в потоке осталось:
4567890ABCDF, тоесть первый 3 байта, 123 - уже считались, после того, как они считались, у тебя указатель перемещается автоматом как бы дальше понимаешь?

то есть после команды fs.read((char*)&item, sizeof(item));, где item = твоя структура, ты из потока прочитаешь ровно столько байт, сколько твоя структура в потоке занимала, тоесть
Цитата Сообщение от lips Посмотреть сообщение
как узнать когда закончилась одна и началась другая структура?
ты это автоматический узнаёшь как бы, после чтения кол-ва байт, равным размеру твоей структуры у тебя указатель в потоке уже стоит дальше, тоесть при следующем чтении ты будешь читать уже другую структуру
Yandex
Объявления
26.11.2013, 13:09     Способ прочитать файл с базой данных
Ответ Создать тему
Опции темы

Текущее время: 01:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru