Войти

Показать полную графическую версию : txt -> hex


dkrasny
29-04-2010, 17:34
Есть текстовый файл с хекс-дампом hex.txt, например такой
.....
E3A00000E5810000E59F15A4E5810000E59F15A0E5810000E59F159CE5810000
E59F1598E3E00000E5810000E59F1590E5810000E59F058CE3A01000E5801000
E59F0584E3A01010E5801000E3A00000EE070F17EE080F17EE110F10E3C00C23
......
Как его (или чем) преобразовать к виду (hex.hex):
......
0000 E3 A0 00 00 E5 81 00 00 E5 9F 15 A4 E5 81 00 00
0010 E5 9F 15 A0 E5 81 00 00 E5 9F 15 9C E5 81 00 00
0020 E5 9F 15 98 E3 E0 00 00 E5 81 00 00 E5 9F 15 90
0030 E5 81 00 00 E5 9F 05 8C E3 A0 10 00 E5 80 10 00
0040 E5 9F 05 84 E3 A0 10 10 E5 80 10 00 E3 A0 00 00
0050 EE 07 0F 17 EE 08 0F 17 EE 11 0F 10 E3 C0 0C 23
......
чтобы всё это можно было влить, например, в eeprom, скажем с помощью icprog
то есть не тупо преобразовать каждый символ (e, 3, a, 0...), а каждые 2 символа в байт (e3h, a0h,...)

pva
02-05-2010, 00:17
какие средства тебе доступны? Пример на C++:

// to_binary.exe:
// to_binary <input.txt >output.bin
int from_hex(char ch)
{
if ('0' <= ch)
{
if (ch <='9') return ch - '0';
if ('A' <= ch)
{
if (ch <='F') return ch - 'A' + 10;
if ('a' <= ch)
{
if (ch <='f') return ch - 'a' + 10;
}
}
}

return 0;
}

int main()
{
char hi, lo;

if (cout.rdbuf())
{
while(cin >> hi >> lo) cout.rdbuf()->sputc((from_hex(hi)<<4) | from_hex(lo));
}
}

переведёт текст в двоичный код

SimSim
02-05-2010, 00:41
Кодовик (http://soft.oszone.net/program/4056/Kodovik/)
Free Hex Editor Neo (http://soft.oszone.net/program/9458/Free_Hex_Editor_Neo/)




© OSzone.net 2001-2012