![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| 14SatanA88 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
Доброго времени суток, уважаемые программеры.
Разбираю BMP по кускам (лаба).
На этой строке компилятор ругает меня: "Operator not applicable to this operand type".
Как обойти? К сожалению, мало что соображаю в указателях, не знаю как там что... Заранее благодарен за помощь. P.S. Я надеюсь, проблему изложил понятно. P.P.S. Видел здесь где-то статейку про указатели, но потерял. Дайте ссылку. |
||||
|
|||||
| AndreyIQ |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 1 Всего: 8 |
Не уверен, что это правильно, но попробуй так
|
||||||||
|
|||||||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
AndreyIQ, к сожалению, не работает.
|
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
а читать поблочно, но несколько раз?
Или так:
Это сообщение отредактировал(а) rodnover - 7.9.2011, 13:39 |
|||
|
||||
| 14SatanA88 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
rodnover,
вопрос решился тупым преобразованием (как я сразу не догадался...)
указатель сместился на нужную позицию. |
||||
|
|||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
ой, вот жешь блин. Извинияюсь. на 5 раз перепроверил, а казалось, что это одинаковые типы. Конец рабочего дня...
|
|||
|
||||
| 14SatanA88 |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
все теперь нормально, но хотелось бы добить код.
вот у меня запись
а вот пара WORD, в которых записан размер файла
работает четко если меняю на
и
выводит совсем не то. где я накосячил? (я отклонился от темы, но все же хотел бы упростить код) Это сообщение отредактировал(а) 14SatanA88 - 8.9.2011, 08:13 |
||||||||
|
|||||||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
up
актуален только последний вопрос
Это сообщение отредактировал(а) bems - 8.9.2011, 20:36 |
|||
|
||||
| rodnover |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
Работает отлично. Тогда возникает вопрос. В каком порядке читаются байты в файле. может там просто порядок напутан и в итоге получается, что
И выводит вместо $01020304? Если приведешь пример файла (именно читаемого куска, чтобы ковыряться меньше) можно будет точнее разъяснить. Это сообщение отредактировал(а) rodnover - 8.9.2011, 08:47 |
||||
|
|||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
по порядку вроде как... ну вот весь код:
возьми абсолютно любой BMP и попробуй моим кодом. bfhSize: DWORD; должен будет хранить размер изображения. |
|||
|
||||
| rodnover |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
Походу, косяк из-за того, что Delphi адресует CHAR не так как надо
Добавлено через 2 минуты и 54 секунды
У тебя Delphi старше 2009? |
||||
|
|||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
Delphi 7.
Заменил CHAR на BYTE, косяк тот же |
|||
|
||||
| AndreyIQ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 1 Всего: 8 |
Если верить википедии, то заголовок файла нужно объявить примерно так:
|
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
||||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
Так попробуй. record выравнивает структуру, а packed впритык делает. Добавлено @ 09:55 У меня и работало, потому что я уже успел packed поставить и забыл. Это сообщение отредактировал(а) rodnover - 8.9.2011, 09:56 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |