С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449

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

25.11.2013, 10:58. Показов 6038. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть база данных в формате .dat
есть файл с структурами и типами в формате .h

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

Добавлено через 36 минут
формат .data... прошу прощение
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2013, 10:58
Ответы с готовыми решениями:

Прочитать файл в обратном порядке т.е. встать в конец файла и прочитать до начальной позиции
подскажите пожалуйста как можно прочитать файл в обратном порядке т.е. стать в конец файла и прочитать до начальной позиции?

Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл согласно своему варианту. Dev C++
8)В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра.

Типизированный файл с базой данных!
ПОМОГИТЕ ПОЖАЛУЙСТА найти ошибки в программе. ОЧЕНЬ НУЖНО К ЗАВТРАШНЕМУ ДНЮ!!! Составить программу для ведения базы данных на основе...

57
Заблокирован
25.11.2013, 11:01
Цитата Сообщение от lips Посмотреть сообщение
формат .data... прошу прощение
ну а что это за формат? ты знаешь его структуру?
1
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 11:13  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
ну а что это за формат? ты знаешь его структуру?
файл со структурами есть, тоесть структуру знаю.... как используя эту структуру корректно достать все данные?

Добавлено через 2 минуты
вот пример структуры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct tEQUIPMENT_ADDON {
    uint id;
    wchar_t name[32];
    int type;
    int num_params;
    int param1;
    int param2;
    int param3;
}; tEQUIPMENT_ADDON  EQUIPMENT_ADDON;
 
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream in;
    in.open("elements.data");
    in>>EQUIPMENT_ADDON.id;
    in.close();
 
    ofstream out;
    out.open("TestFile.data");
    out<<EQUIPMENT_ADDON.id;
    out.close();
    getch();
}
но не получается таким способом
0
Заблокирован
25.11.2013, 11:13
ну а в чём проблема то, если ты структуру знаешь? Это ж бинарный файл? Открываешь его и читаешь сколько надо байт с последующим приведением к типу структуры
1
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 11:18  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
ну а в чём проблема то, если ты структуру знаешь? Это ж бинарный файл? Открываешь его и читаешь сколько надо байт с последующим приведением к типу структуры
да бинарный вроде... а в этом файле должны структуры по порядку идти?
0
Заблокирован
25.11.2013, 11:23
C++
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
#include <windows.h>
#include <tchar.h>
#include <fstream>
 
struct EQUIPMENT_ADDON {
    unsigned id;
    wchar_t name[32];
    int type;
    int num_params;
    int param1;
    int param2;
    int param3;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    EQUIPMENT_ADDON item;
    std::fstream fs(L"elements.data", std::ios::in | std::ios::binary);
    if(fs.is_open())
    {
        fs.read((char*)&item, sizeof(item));
        fs.close();
 
        fs.open(L"result.txt", std::ios::out);
        if(fs.is_open())
        {
            fs << "ID: "<< item.id << std::endl;            
            fs.close();
        }
    }
}
Добавлено через 25 секунд
Цитата Сообщение от lips Посмотреть сообщение
а в этом файле должны структуры по порядку идти?
откуда я знаю, спроси у того, кто этот файл создавал )))
1
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 11:28  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
C++
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
#include <windows.h>
#include <tchar.h>
#include <fstream>
 
struct EQUIPMENT_ADDON {
    unsigned id;
    wchar_t name[32];
    int type;
    int num_params;
    int param1;
    int param2;
    int param3;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    EQUIPMENT_ADDON item;
    std::fstream fs(L"elements.data", std::ios::in | std::ios::binary);
    if(fs.is_open())
    {
        fs.read((char*)&item, sizeof(item));
        fs.close();
 
        fs.open(L"result.txt", std::ios::out);
        if(fs.is_open())
        {
            fs << "ID: "<< item.id << std::endl;            
            fs.close();
        }
    }
}
Добавлено через 25 секунд

откуда я знаю, спроси у того, кто этот файл создавал )))
чтото выдалось спасибо большое за ответ
0
Заблокирован
25.11.2013, 11:33
Цитата Сообщение от lips Посмотреть сообщение
чтото выдалось спасибо большое за ответ
тут ключевой момент в том, что ты открываешь файл как бинарный и читаешь кусок байтом, размером с твою структуру как бы, тоесть не учитывая того, что надо выравнивать структуры в памяти перед сохранением и прочую галимотью, ты читаешь этот блок байтов и структура у тебя заполняется
0
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 13:22  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
тут ключевой момент в том, что ты открываешь файл как бинарный и читаешь кусок байтом, размером с твою структуру как бы, тоесть не учитывая того, что надо выравнивать структуры в памяти перед сохранением и прочую галимотью, ты читаешь этот блок байтов и структура у тебя заполняется
спасибо.. но работает некорректно... выводит не то

C++
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
struct EQUIPMENT_ADDON {
    int id;
    wchar_t name[32];
    int type;
    int num_params;
    int param1;
    int param2;
    int param3;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    EQUIPMENT_ADDON item;
    std::fstream fs(L"elements.data", std::ios::in | std::ios::binary);
    if(fs.is_open())
    {
        fs.read((char*)&item, sizeof(item));
        fs.close();
 
        fs.open(L"result.txt", std::ios::out);
        if(fs.is_open())
        {
            fs << "ID: "<< item.id << std::endl;
            fs << "name: "<< item.name << std::endl;
            fs << "type: "<< item.type << std::endl;
            fs << "num_params: "<< item.num_params << std::endl;
            fs << "param1: "<< item.param1 << std::endl;
            fs << "param2: "<< item.param2 << std::endl;
            fs << "param3: "<< item.param3 << std::endl;
 
            fs.close();
        }
    }
 
 
 
}
0
Заблокирован
25.11.2013, 13:25
скинь сюда исходный файл с данными, посмотрю
1
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
25.11.2013, 13:31
Чтобы корректно считывало, нужно сначала корректно записать.
0
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 13:34  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
скинь сюда исходный файл с данными, посмотрю
может шифрование используется какое то?

структура должна заполнена быть вот так:
7046
_Тест.доп.хар-ка 1
77
2
441
1
0
Вложения
Тип файла: rar 123.rar (1.94 Мб, 10 просмотров)
0
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 13:37  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
Чтобы корректно считывало, нужно сначала корректно записать.
она корректно записана... другая программа читает...
0
Заблокирован
25.11.2013, 13:39
а что конкретное не так считывается? что должно быть в результате? пример корректной ячейки данных есть?
1
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
25.11.2013, 13:46  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
а что конкретное не так считывается? что должно быть в результате? пример корректной ячейки данных есть?
id 7046
name _Тест.доп.хар-ка 1
type 77
num_params 2
param1 441
param2 1
param3 0
0
Заблокирован
25.11.2013, 13:47
ну в файле другие данные )))

Добавлено через 10 секунд
или структура данных не корректная
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
25.11.2013, 14:11
Данные начинаются со смещения 0x88. То есть, первые 0x88 байт - это заголовок.
Размер блока - 0x76 - проверьте опции выравнивания (alignment) для вашей структуры.
Миниатюры
Способ прочитать файл с базой данных  
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
25.11.2013, 14:23
Цитата Сообщение от gazlan Посмотреть сообщение
Размер блока - 0x76
Fix: Размер блока - 0x5A - уточнил по текстовым меткам в файле.
1
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
25.11.2013, 15:02
Цитата Сообщение от lips Посмотреть сообщение
она корректно записана... другая программа читает...
Здесь неважно как его читает другая программа. Вам дали исходник с считыванием бинарного файла, а Вы текстовый файл подсовываете.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
25.11.2013, 15:38
Цитата Сообщение от kazak Посмотреть сообщение
текстовый файл
Ни разу не текстовый :-)
Миниатюры
Способ прочитать файл с базой данных  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2013, 15:38
Помогаю со студенческими работами здесь

После разделения базы данных не открывается файл с базой таблиц
Упёрся в стену. Помогите. Разделил базу на таблицы и формы и после этого Access не даёт открыть файл с таблицами. Пишет &quot;Данное...

Как в программе можно открыть файл, с уже готовой базой данных в Access
Скажите как в программе можно открыть файл, с уже готовой базой данных в Access

Путь к базе данных MySQL, или где собака (файл с базой) зарыт
Добрый день. Опять я. Только вот вопрос у меня теперь совершенно идиотский: Qt и MySQL я наконец-то подружил. Дело там, естественно, было...

Как прочитать xml файл из внешнего источника и на основе полученных данных сформировать HTML таблицы?
Дана задача, нужно по API получить листы с сервера, найти среди них с подтверждением(DoubleOptIn) и без(SingleOptIn). Вывести их отдельно...

Прочитать файл данных (формата TSV) и подсчитать для каждого класса средний рост учащихся
Дан файл с таблицей в формате TSV с информацией о росте школьников разных классов. Напишите программу, которая прочитает этот файл и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru