Консультация № 67573
18.12.2006, 20:09
0.00 руб.
0 1 1
Есть проект на С++ .NET(2003)
Есть типизированный файл(состоящий из однотипных записей, описываемых структурой)
Каким образом организовать считывание-запись такой структуры в файл.
Пробовал реализовать через FileStream+BinaryReader/Writer, но вручную раскладывать прочитанные байты по записи не удобно, возможно есть другое решение.

Заранее спасибо!

Приложение:
К примеру одна из:struct rec_point {char tag[15];Byte type_id;int x;int y;long p1;long p2;long p3;long p4;long q;}

Обсуждение

Неизвестный
18.12.2006, 23:14
общий
это ответ
Здравствуйте, Стас М.!
Нужно преобразовать структуру в char * и затем писать. Я правда не знаю что ты используешь, я .NET ненавижу и использую только стандартный С++ поэтому и пример приведу на нем, но принцип везде одинаковый.

Приложение:
#include <fstream>using namespace std;rec_point pt; // твоя структураfstream file(filename);file.read(reinterpret_cast<char*>(&pt), sizeof(pt));Аналогчино для записи в файл:file.write(reinterpret_cast<char*>(&pt), sizeof(pt));Нужно быть так же аккуратными с sizeof(). Если в стурктуре есть данные, которые динамически изменяюся (например строки), то нужно вычислять размер по другому.В твоем случае, можно применять sizeof, т.к. у тебя нет динамически изменяемых обьектов и все данные имеют статический размер.
Форма ответа