Чтение двоичных файлов |
Здравствуйте, гость ( Вход | Регистрация )
Чтение двоичных файлов |
AD |
8.7.2008, 12:20
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Ну задачка в принципе уже решена, но это сделано с помощью WinApi функций, таких как
::ReadFile() А теперь хочу решить ее с помощью QDataStream. Подскажите, пожалуйста, как правильно скачать в свои структуры из файла! Подскажите, пожалуйста, как это в коде сделать? Мои предположения: эту иою структуру (обзовем ее T) занести в QVector и потом сделать: QVector<T*> vecT;
правильная мысль? Или надо по-другому? Сообщение отредактировал AD - 8.7.2008, 13:26 |
|
|
sploid |
8.7.2008, 12:54
Сообщение
#2
|
Студент Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: 1 |
тогда уж так:
вектор умеет сохранять себя, для этого нужно что бы элементы вектора тоже умели себя сохранять. в доке это написано: http://doc.trolltech.com/4.4/qvector.html в разделе "Related Non-Members" |
|
|
AD |
8.7.2008, 19:16
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Помогите пожалуйста, я немного запутался.
Вот структура, которую я пытаюсь считать из файла
Вот так я переопределил оператор operator>>
Вот само считывание
Ну и на всякий случай привожу код LibReader:
А вопрос вот в чем. Он при чтении вектора выдает бешеный размер и в итоге крутится внутри этого цикла (залез дебаггером и посмотрел)! Как считать все-таки правильно? |
|
|
AD |
9.7.2008, 9:37
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Кто знает правильное решение, поскажите, пожалуйста?
|
|
|
ViGOur |
9.7.2008, 10:19
Сообщение
#5
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А как ты записываешь вектор в файл?
|
|
|
AD |
9.7.2008, 11:21
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
А как ты записываешь вектор в файл? Вообще файл уже готовый. Простейший пример создал и то не работает. Вот код. Где ошибка, в душе не знаю:
А далее в функции делаю следующее:
Пишет правильно, а вот считывает ахинею! Сделал в приведенном примере кое-какие поправки: стал записывать и считывать через вектор. Записывает он правильно, но в начале плюс ко всему пишет и размер вектора (вот поэтому у меня происходит зацикливание - нет указания на размер вектора). А вот при считывании все-равно в вектор ахинею пишет. Вот код:
|
|
|
Гость_Гость_* |
9.7.2008, 12:40
Сообщение
#7
|
Гости |
Возможно баг.
Я вообще не могу найти реализации чтения QVector. |
|
|
AD |
9.7.2008, 13:04
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
ViGOur |
9.7.2008, 13:05
Сообщение
#9
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Копи-пасте вредно для здоровья!
Попробуй так:
|
|
|
AD |
9.7.2008, 13:09
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Копи-пасте вредно для здоровья! Попробуй так:
Уже пробовал. Тоже работает. НО ЭТО ВСЕ В ТЕСТЕ! А вот мою библиотеку картографическую, не хочет читать! |
|
|
Текстовая версия | Сейчас: 3.1.2025, 5:15 |