Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

hex в bin

2.0K
22 апреля 2003 года
spike
19 / / 22.04.2003
как сделать:
у меня есть файл в котором находятся hex значения:
FF
F2
B3
...
D3

как мне из этого файла сделать бинарный файл ?
есть функция HexToBin, но я не разобрался как ей пользоваться
362
23 апреля 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by spike
как сделать:
у меня есть файл в котором находятся hex значения:
FF
F2
B3
...
D3

как мне из этого файла сделать бинарный файл ?
есть функция HexToBin, но я не разобрался как ей пользоваться



а бинарный файл это что-то вроде езешника? :-)

если ты точно знаешь, что каждое число HEX-файле находится в новой строке (как ты написал), то тогда так
FILE in = fopen(sljdklsjdklsjdkl, "r");
FILE out = fopen(sdkjsdlkjskjd, "w");
char str[5];
int w;
while(!feof(in))
{
fgets(str, 5, in);
sscanf(str, "%X", &w);
fwrite((void*)&w, sizeof(int), 1, out);
}
fclose(in);
fclose(out);

2.0K
23 апреля 2003 года
spike
19 / / 22.04.2003
Цитата:
Originally posted by _kolyan


а бинарный файл это что-то вроде езешника? :-)

если ты точно знаешь, что каждое число HEX-файле находится в новой строке (как ты написал), то тогда так
FILE in = fopen(sljdklsjdklsjdkl, "r");
FILE out = fopen(sdkjsdlkjskjd, "w");
char str[5];
int w;
while(!feof(in))
{
fgets(str, 5, in);
sscanf(str, "%X", &w);
fwrite((void*)&w, sizeof(int), 1, out);
}
fclose(in);
fclose(out);



млин не правильно конвертит :(

почему char str[5]; а не 2 например ?
и почему fgets(str, 5, in); тоже 5 ?
просто файл hex
F0
F2
F0
F0
F0
F0
F0
F0
F1
F0
F1
F0
...

bin
F0 00 00 00 F2 00 00 00 F0 00 00 00 F0 00 00 00
F0 00 00 00 F0 00 00 00 F0 00 00 00 F0 00 00 00
F1 00 00 00 F0 00 00 00 F1 00 00 00 F0 00 00 00
F9 00 00 00 F6 00 00 00 F2 00 00 00 F1 00 00 00
F4 00 00 00 F4 00 00 00 F1 00 00 00 F3 00 00 00
F0 00 00 00 F2 00 00 00 F3 00 00 00 F2 00 00 00
F4 00 00 00 F7 00 00 00 F2 00 00 00 F5 00 00 00
F9 00 00 00 F3 00 00 00 C6 00 00 00 C6 00 00 00
C6 00 00 00 C6 00 00 00 C6 00 00 00 F0 00 00 00

вот если бы убрать эти три пары 00 (нулей)
всё должно быть окей
что исправить надо ?

469
23 апреля 2003 года
Sli
71 / / 20.01.2000
Цитата:
Originally posted by spike
что исправить надо ?



fwrite((void*)&w, sizeof(int), 1, out);
будет записывать по 4 байта за раз (размер int в системе)

сначало приведи считаное значение к типу char

char с=(char) w;
fwrite((void*)&c, sizeof(char), 1, out);

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог