0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 98
1

Объясните бинарные файлы (теорию)

14.12.2014, 21:25. Показов 1553. Ответов 4
Метки нет (Все метки)

С реализацией разобрался, но плохо осведомлён теорией. На примере структуры.
У нас есть структура и нам нужно занести элементы бинарный файл, а потом открыть. Как всё это происходит?
Как я это понимаю:
Указываем тип структуры сохраняем указатель, перемещаемся на следующую ячейку опять же сохраняем.
При открытии и считывание бинарного файла, он берёт тот тип элементов которые попадают под тип который мы указали. Опять же как он там бежит, если информация разбросана.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2014, 21:25
Ответы с готовыми решениями:

Бинарные файлы
Нужна помощь Во время работы программы если взять много значений программа вылетает. Уже все...

Бинарные файлы
В файле содержатся числа. Сформировать из них матрицу, содержащую пять элементов в строке. Лишние...

Бинарные файлы
Прошу помочь с новыми задачками

бинарные файлы, C++
Работа с двоичными файлами. Создать файл состоящий из n-вещественных чисел. Найти сумму всех...

4
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
14.12.2014, 21:57 2
При использовании бинарных методов записи\чтения просто записывается или считывается указанное количество байтов (например, равное размеру некой структуры).
0
3174 / 1933 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
14.12.2014, 22:08 3
Цитата Сообщение от perec200 Посмотреть сообщение
плохо осведомлён
Не ищите "теорию" там где ее нет. Файлы все и всегда бинарные. Но некоторые библиотечные функции могут работать с ними в "текстовом" режиме, используя прозрачную трансляцию символа EOL и придавая специальное значение некоторым другим (NULL, HT, VT, FF etc).

сохраняем указатель
"сохранение указателя" лишено всякого смысла. Сохраняют непрерывный блок памяти заданного размера, адресуемый указателем. И его же потом считывают. А трактовка этой памяти ("типы элементов") - это забота компилятора. К сохранению и считыванию отношения не имеющая.
0
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 98
14.12.2014, 22:09  [ТС] 4
lss, А запись идёт по порядку расположения элементов?
Можно трактовать следующем образом. Указываю тип, допусти 1 и программа считывает 1 ячейку, потом вторую. Далее указываю другой тип2, и программа считывает ячейки из этого типа. Кол-во ячеек соответствует типу.
Миниатюры
Объясните бинарные файлы (теорию)  
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
14.12.2014, 23:52 5
Лучший ответ Сообщение было отмечено perec200 как решение

Решение

Ячейки - это что?

Добавлено через 20 минут
Предположим, есть такая структура (выровненная в памяти по одному байту):
C++
1
2
3
4
5
6
struct s
{
    int x; // 4 байта
    char str[10]; // 10 байтов
    double d; // 8 байтов
};
Бинарная запись такой структуры в файл:
C++
1
2
3
4
5
 
    ofstream fout("file", ios::binary);
    s obj_out = {1, "asdfghjkl", 2.0};
    fout.write((const char*)&obj_out, sizeof(s));
    fout.close();
В файл будут последовательно записаны 22 байта памяти, под переменной obj_out.
Бинарное чтение этой структруры из файла:
C++
1
2
3
4
    ifstream fin("file", ios::binary);
    s obj_in;
    fin.read((char*)&obj_in, sizeof(s));
    fin.close();
Будут прочитаны из файла 22 байта в память под переменной obj_in. При этом, первые четыре байта попадаут в память под x, следующие 10 байтов в память под массивом str, следующие 8 байтов в память под переменной d.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2014, 23:52
Помогаю со студенческими работами здесь

Бинарные файлы..
Доброго времени суток, господа! Возникла проблемка с открытием бинарного файла: char...

Бинарные файлы
1.Записать в файл N действительных чисел a1, a2, …,an. Организовать новый файл , элементы которого...

Бинарные файлы
как в бинарном файле заменить 4, 8 и 10 байт

Бинарные файлы
Ребята у вас есть какие та примеры программок работы с бинарными файлами, к примеры поменять...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru