Russian Qt Forum

Программирование => С/C++ => Тема начата: Anonymous от Апрель 13, 2004, 11:21



Название: Сохранение на диск некоротой структуры данных
Отправлено: Anonymous от Апрель 13, 2004, 11:21
Доброе время суток.

Стоит задача сохранить некоротую структуру данных на диск, для того
что-бы в дальнейшем ее считывать и снова использовать.

Есть конечно вариант сохранить все это дело в текстовый файл а затем
его парсить, но этот способ не особенно привлекает.

Есть ли какие либо другие способы зделать это?

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

PS Сделать надо на C/C++


Название: Сохранение на диск некоротой структуры данных
Отправлено: EugeneVC от Апрель 13, 2004, 11:22
Я бы посоветовал смотреть в сторону XML.
С помощью этой технологии можно хранить любые данные.


Название: Сохранение на диск некоротой структуры данных
Отправлено: cap от Апрель 13, 2004, 12:09
Структура данных в каком виде? struct?

Можно просто записать/прочитать в бинарный файл эту структуру.


Название: Сохранение на диск некоротой структуры данных
Отправлено: EugeneVC от Апрель 13, 2004, 12:41
это не есть хорошо
данные могут быть прочитаны на любом другом компе
а там не факт что sizeof(struct) будет возвразщать одно и тоже значение.

Надо будет писать функции упаковки и распаковки данных.


Название: Сохранение на диск некоротой структуры данных
Отправлено: cap от Апрель 13, 2004, 12:45
Теоретически проблема может возникнуть скорее не из-за размера, а из-за последовательности байтов.
Но и эта проблема может возникнуть лишь в случае перетаскивания файла с данными на какую-то совсем другую архитектуру.

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


Название: Сохранение на диск некоротой структуры данных
Отправлено: ods от Апрель 13, 2004, 12:47
fwrite/fread вполне способны записать/считать структуру (непрерывный кусок памяти фиксированного размера) в файл. Но никакой проверки на правильность данных при этом не производится, так что лучше писать в файл определенного формата и явно парсить и проверять данные при чтении.


Название: Сохранение на диск некоротой структуры данных
Отправлено: EugeneVC от Апрель 13, 2004, 12:53
Цитата: "cap"
Теоретически проблема может возникнуть скорее не из-за размера, а из-за последовательности байтов.
Но и эта проблема может возникнуть лишь в случае перетаскивания файла с данными на какую-то совсем другую архитектуру.

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


если писать только под винды
можно об многом забыть
мне приходится для операционнок писать linux и windows


Название: Сохранение на диск некоротой структуры данных
Отправлено: cap от Апрель 13, 2004, 12:59
так нужно путь решения сораизмерять с конкретной задачей ;)

в любом случае, сохранение бинарных данных, пусть не целой записью, а поэлементно (раз уж мы так бьемся за переносимость ;), будет работать быстрее и реализовать это будет проще, чем сохранение и чтение в XML :)


Название: Сохранение на диск некоротой структуры данных
Отправлено: EugeneVC от Апрель 13, 2004, 13:23
конечно легче
XML как альтернатива


Название: Сохранение на диск некоротой структуры данных
Отправлено: Anonymous от Апрель 29, 2004, 16:28
если структура содержит указатели - то бинарний дамп в файл ничего не даст


Название: Сохранение на диск некоротой структуры данных
Отправлено: EugeneVC от Апрель 29, 2004, 22:22
да указатели надо отдельно обходить