Russian Qt Forum
Май 06, 2024, 14:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранение на диск некоротой структуры данных  (Прочитано 9280 раз)
Anonymous
Гость
« : Апрель 13, 2004, 11:21 »

Доброе время суток.

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

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

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

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

PS Сделать надо на C/C++
Записан
EugeneVC
Гость
« Ответ #1 : Апрель 13, 2004, 11:22 »

Я бы посоветовал смотреть в сторону XML.
С помощью этой технологии можно хранить любые данные.
Записан
cap
Гость
« Ответ #2 : Апрель 13, 2004, 12:09 »

Структура данных в каком виде? struct?

Можно просто записать/прочитать в бинарный файл эту структуру.
Записан
EugeneVC
Гость
« Ответ #3 : Апрель 13, 2004, 12:41 »

это не есть хорошо
данные могут быть прочитаны на любом другом компе
а там не факт что sizeof(struct) будет возвразщать одно и тоже значение.

Надо будет писать функции упаковки и распаковки данных.
Записан
cap
Гость
« Ответ #4 : Апрель 13, 2004, 12:45 »

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

Все зависит от конкретной задачи. Скорее всего этот файл будет жить либо на одной машине, либо на одной архитектуре. В этом случае проблем не будет.
Если файл будет переноситься между машинами с разными архитектурами, то нужно рассматривать эту ситуациию в зависимости от конкретики.
Записан
ods
Гость
« Ответ #5 : Апрель 13, 2004, 12:47 »

fwrite/fread вполне способны записать/считать структуру (непрерывный кусок памяти фиксированного размера) в файл. Но никакой проверки на правильность данных при этом не производится, так что лучше писать в файл определенного формата и явно парсить и проверять данные при чтении.
Записан
EugeneVC
Гость
« Ответ #6 : Апрель 13, 2004, 12:53 »

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

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


если писать только под винды
можно об многом забыть
мне приходится для операционнок писать linux и windows
Записан
cap
Гость
« Ответ #7 : Апрель 13, 2004, 12:59 »

так нужно путь решения сораизмерять с конкретной задачей Подмигивающий

в любом случае, сохранение бинарных данных, пусть не целой записью, а поэлементно (раз уж мы так бьемся за переносимость Подмигивающий, будет работать быстрее и реализовать это будет проще, чем сохранение и чтение в XML Улыбающийся
Записан
EugeneVC
Гость
« Ответ #8 : Апрель 13, 2004, 13:23 »

конечно легче
XML как альтернатива
Записан
Anonymous
Гость
« Ответ #9 : Апрель 29, 2004, 16:28 »

если структура содержит указатели - то бинарний дамп в файл ничего не даст
Записан
EugeneVC
Гость
« Ответ #10 : Апрель 29, 2004, 22:22 »

да указатели надо отдельно обходить
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.07 секунд. Запросов: 20.