![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Salatovec |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Доброго всем времени суток. Есть бинарный файл, в нём хранятся шестнадцатиричные значения.
Считывать я его считываю, но на вывод значения идут не в том виде, в котором хотелось бы. Вот код:
Но в мемо вместо 3F10D30B3FE50708 выводится 198381631. В чём моя ошибка? Заранее спасибо! Это сообщение отредактировал(а) Salatovec - 16.11.2011, 00:06 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
В том, что по умолчанию любое число преобразуется в строку в десятичной системе. Чтобы этого не происходило, необходимо принудительно указать систему счисления. Для этого подойдет AnsiString::sprintf. Далее, ты ожидаешь увидеть число из 16 шестнадцатеричных цифр, а в int влезает только 8. Вместо stdio лучше использовать VCL класс TFile (или как его там). П.С.: Для вопросов по C++ Builder существует отдельный раздел. |
|||
|
||||
Salatovec |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Могу ли я продолжать здесь писать в таком случае? Мне не обязательно даже под билдер, я просто в принципе не понимаю всего, что отлично от десятиричной системы...
А можно пример, пожалуйста? Это сообщение отредактировал(а) Salatovec - 16.11.2011, 00:17 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Как-то так:
Это сообщение отредактировал(а) bsa - 16.11.2011, 00:22 |
|||
|
||||
Salatovec |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Ругается мол [BCC32 Error] Unit1.cpp(22): E2451 Undefined symbol 'fmBinary' |
||||
|
|||||
vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: 0 Всего: 0 |
обычно в бинарные файлы пишут структуры.Не зная структуры читать только побайтово со всеми вытекающими.
|
|||
|
||||
Salatovec |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
![]() Это сообщение отредактировал(а) Salatovec - 16.11.2011, 01:08 |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
д'Билдера у меня нет... Это сообщение отредактировал(а) volatile - 16.11.2011, 02:31 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Я билдером не пользовался уже лет 5. Ну не помню я всех тонкостей. А в интернете нормальной доки не нашел. |
|||
|
||||
Salatovec |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Во, спасибо огромное, помогло! Единственный теперь вопрос - как узнать полное количество битов для считывания? В вашем примере их всего 10, а в моём файле многим-многим больше? Добавлено через 50 секунд
К сожалению у меня не установлен SDK, да, бывает и такое... |
||||
|
|||||
Salatovec |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Всё ещё остаётся актуальным... Это сообщение отредактировал(а) Salatovec - 17.11.2011, 22:48 |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
Salatovec |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Ой, да, 8 - я опечатался... Так а каким образом пробежаться по всему файлу? Как вы выразились - узнать его размер? |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
В принципе, размер даже и не нужен. Когда файл закончится функция fread даст знать об этом. ![]() fread |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Salatovec, вообще рекомендую создать тему в "новичках", с названием:
Так как это никакого отношения к первоначальному вопросу не имеет. Кроме того это явно не тот раздел, чтобы отвечать на такие вопросы. Да и ответ там вы получите быстрее. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |