Чтение двоичных файлов |
Здравствуйте, гость ( Вход | Регистрация )
Чтение двоичных файлов |
ViGOur |
9.7.2008, 13:17
Сообщение
#11
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Приведи оператор operator<<.
Сообщение отредактировал ViGOur - 9.7.2008, 13:17 |
|
|
AD |
9.7.2008, 13:22
Сообщение
#12
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
ViGOur |
9.7.2008, 13:42
Сообщение
#13
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
а кто пишет эту структуру?
как я понял не ты, правильно? если ты читаешь настоящий nt.dat, то QDataStream тебе не подойдет для чтения, прийдется читать с помощью read и write. что в принципе удобней. |
|
|
AD |
9.7.2008, 14:13
Сообщение
#14
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
а кто пишет эту структуру? как я понял не ты, правильно? если ты читаешь настоящий nt.dat, то QDataStream тебе не подойдет для чтения, прийдется читать с помощью read и write. что в принципе удобней. Скажем так, файлы nt.mac (nt.dat - был тестовый) пишутся другой программой, которую делал я (программа написана на GUI MFC). Там это реализовано с помощью WinApi - ReadFile, WriteFile! А как правильно прочесть с помощь read()? Можно примерчик куска кода? Сообщение отредактировал AD - 9.7.2008, 14:17 |
|
|
ViGOur |
9.7.2008, 14:16
Сообщение
#15
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А как ты читаешь на MFC?
read и write работаю на подобии ReadFile и WriteFile. |
|
|
AD |
9.7.2008, 14:40
Сообщение
#16
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
ViGOur |
9.7.2008, 14:45
Сообщение
#17
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
AD |
9.7.2008, 14:58
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
QFile Вопрос уточню: в ReadFile, WriteFile - есть параметры типа void*, которые можно привести к моим (пользовательским) типам. В Qt описание read следующее: Цитата qint64 read ( char * data, qint64 maxSize ) Reads at most maxSize bytes from the device into data, and returns the number of bytes read. If an error occurs, such as when attempting to read from a device opened in WriteOnly mode, this function returns -1. 0 is returned when no more data is available for reading. See also readData(), readLine(), and write(). QByteArray read ( qint64 maxSize ) This is an overloaded member function, provided for convenience. Reads at most maxSize bytes from the device, and returns the data read as a QByteArray. This function has no way of reporting errors; returning an empty QByteArray() can mean either that no data was currently available for reading, or that an error occurred. Каким образом я смогу эти типы привести к нужному мне типу? А мне нужен тип MAC4Header. Выше уже приводилась его структура. |
|
|
ViGOur |
9.7.2008, 15:18
Сообщение
#19
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Вот так:
|
|
|
void* |
9.7.2008, 15:19
Сообщение
#20
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
может проще для таких структур данных использовать XML? тем более в Qt есть и SAX-парсеры, и DOM-парсеры...
Сообщение отредактировал void* - 9.7.2008, 15:19 |
|
|
Текстовая версия | Сейчас: 3.1.2025, 5:31 |