Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
hesse
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 21
#1

Запись структуры в бинарный файл - C++ Builder

20.05.2018, 02:18. Просмотров 114. Ответов 8
Метки нет (Все метки)

Пишу будильник, использую статический массив структур, по нажатию кнопки элемент массива должен сохраняться в файл.Столкнулся с проблемой записи структуры в бинарный файл. При использовании ofstream или fopen не происходит абсолютно ничего. Какими способами я мог бы достигнуть желаемого результата?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2018, 02:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запись структуры в бинарный файл (C++ Builder):

Запись/чтение структуры с полем типа String в бинарный файл - C++ Builder
Доброго времени суток. Есть слудующая структура struct R { int Number; String Name; String Nick; String email;

Запись в бинарный файл - C++ Builder
Всем Доброй ночи, у меня есть класс заказ с кучей структур, в структурах полно векторов. Необходимо записать это всё в бинарный файл, мысль...

Чтение и запись в бинарный файл - C++ Builder
Записываю текст из Memo в бинарный файл, потом в другой программе пытаюсь считать текст из этого бинарного файла в Memo, но при считывании...

Работа с бинарными файлами, чтение и запись строк в бинарный файл - C++ Builder
Доброго времени суток. Вот наконец-то доделал курсовую по builder c++. Проблема в том , что у меня записывает в бинарный файл и считывает...

Запись/чтение структуры в файл - C++ Builder
Необходимо записать, а потом прочесть структуру в/из файла. Структура Prog.h struct sBlack { AnsiString Pol1; AnsiString Pol5; ...

Запись поля структуры в файл - C++ Builder
Записываю данные структуры из бинарного в текстовый файл. dan - переменная моей структуры. while( fread(&dan,sizeof(dan),1,f2)>0)...

8
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25535 / 17088 / 5416
Регистрация: 22.10.2011
Сообщений: 30,256
Записей в блоге: 7
20.05.2018, 12:17 #2
Цитата Сообщение от hesse Посмотреть сообщение
При использовании ofstream или fopen не происходит абсолютно ничего
При использовании fopen должен открываться файл. А потом через fwrite в него должна записываться информация.

Для начала: что за структуры? Я надеюсь, они не содержат ссылочные типы или указатели?
0
hesse
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 21
20.05.2018, 12:59  [ТС] #3
Ссылочных типов и указателей нет, структура содержит поля типа char int и bool
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25535 / 17088 / 5416
Регистрация: 22.10.2011
Сообщений: 30,256
Записей в блоге: 7
20.05.2018, 13:09 #4
Значит, все должно записываться в файл, показывай, как пытался.
0
hesse
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 21
20.05.2018, 13:16  [ТС] #5
C++
1
2
3
4
const char* PATH = "C:\\MyFiles\\5.txt";
 ofstream out(PATH,ios::binary|ios::out);
 out.write((char*)&X,sizeof X);
 out.close();
(x-объект структуры)
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25535 / 17088 / 5416
Регистрация: 22.10.2011
Сообщений: 30,256
Записей в блоге: 7
20.05.2018, 13:50 #6
Ну и как я должен проверить у себя этот код ,если сама структура так и осталась неизвестной?
0
hesse
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 21
20.05.2018, 14:23  [ТС] #7
C++
1
2
3
4
5
6
7
struct alarm_clock {
char name [100];
bool repeat;
int hour, min;
};
 
alarm clock x;
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25535 / 17088 / 5416
Регистрация: 22.10.2011
Сообщений: 30,256
Записей в блоге: 7
20.05.2018, 14:33 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну, и что? Сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct alarm_clock
{
    char name [100];
    bool repeat;
    int hour, min;
};
 
alarm_clock X;
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    const char* PATH = "C:\\MyPrograms\\5.txt";
    ofstream out(PATH,ios::binary|ios::out);
    out.write((char*)&X,sizeof X);
    out.close();
}
, в папке появился файл, размером 112 байт. В чем проблема? Открываешь его текстовым редактором и он пуст? Нельзя этого делать, это файл бинарный.
1
hesse
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 21
20.05.2018, 15:59  [ТС] #9
В моем случае создание файла не происходит

Добавлено через 4 минуты
Извиняюсь, проблема была в пути, я заменил все одинарные слэш на двойные и все заработало. Благодарю за помощь
0
20.05.2018, 15:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2018, 15:59
Привет! Вот еще темы с ответами:

Сделать запись в файл, использовать динамические структуры и указатели - C++ Builder
Задание: Информация, входящая в файл: номер детали, наименование, количество, стоимость. Определить количество деталей, стоимость которых...

Включить в исполняемый файл бинарный файл - C++ Builder
Собственно задача такая - есть некая программа которая пишет BIN файл во внешнее устройство. Но пользователи иногда путают файлы при выборе...

Текст в бинарный файл - C++
Суть проблемы такова: Мне нужно вытащить весь текст из одного файла и сохранить бинарно в другой файл, чтобы его содержимое нельзя было...

Не выходит бинарный файл - C++ Builder
Помогите с бинарным файлом. Дело в том, что сколько бы я не писал программ, ни сам, ни готовые примеры, мне в результате вместо двоичного...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru