отобразить байтовый массив
От: teran2000  
Дата: 19.09.06 09:36
Оценка:
помогите начинающему...

написал процедуру чтения hex файла...результатом этой процедуры является
байтовый массив который лекго сливаю в порт для прошивки в микроконтроллер.
теперь нужно отобразить этот байтовый массив в диалоге..

в формате: 0000 FF FF FF FF FF FF FF....(по 16 байтов в строке)
0010 АА АА АА......

отображаю все в EDIT BOX

вопрос, как конвертировать BYTE в char или CString..чтобы его принял EDIT BOX

и еще EDIT BOX не понимает перенос на след строку "\n", отображает квадратик
и пишет все в одной строке... как его заставить?

задумал след. алгоритм:
читаю этот байтовы массив по 16 байтов создаю строку str (0000 FF FF FF FF FF FF FF.....)
m_EDITBOX+=str;и заливаю в EDITBOX


посоветуйте как лучше..

спасиба.
Re: отобразить байтовый массив
От: Аноним  
Дата: 19.09.06 09:57
Оценка:
Здравствуйте, teran2000, Вы писали:

T>и еще EDIT BOX не понимает перенос на след строку "\n", отображает квадратик

T>и пишет все в одной строке... как его заставить?

Перенос строки в Edit Box кодируется \r\n
Re: отобразить байтовый массив
От: Кодт Россия  
Дата: 21.09.06 17:52
Оценка: 3 (1)
Здравствуйте, teran2000, Вы писали:

T>помогите начинающему...


T>написал процедуру чтения hex файла...результатом этой процедуры является

T>байтовый массив который лекго сливаю в порт для прошивки в микроконтроллер.
T>теперь нужно отобразить этот байтовый массив в диалоге..

Вариант номер раз: отображай прямо содержимое hex-файла. Зачем тебе переводить из строк в байты, а затем обратно?

Вариант номер два: велосипедный.
void add_hex_digit(CString &s, BYTE b)
{
    static const char* hexdigits = "0123456789ABCDEF";
    s += hexdigits[b & 0xF];
}

void add_hex_byte(CString &s, BYTE b)
{
    add_hex_digit(s, b>>4);
    add_hex_digit(s, b);
}

void add_hex_word(CString &s, WORD w)
{
    add_hex_digit(w>>12);
    add_hex_digit(w>>8);
    add_hex_digit(w>>4);
    add_hex_byte(w);
}


Вариант номер три: sprintf или CString::Format с кодом форматирования %02X для байтов и %04X для вордов.

А перевод строки в multiline editbox — это \r\n (CR+LF)
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: отобразить байтовый массив
От: teran2000  
Дата: 23.09.06 12:35
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, teran2000, Вы писали:


T>>помогите начинающему...


T>>написал процедуру чтения hex файла...результатом этой процедуры является

T>>байтовый массив который лекго сливаю в порт для прошивки в микроконтроллер.
T>>теперь нужно отобразить этот байтовый массив в диалоге..

К>Вариант номер раз: отображай прямо содержимое hex-файла. Зачем тебе переводить из строк в байты, а затем обратно?


ну дык, я ж его не просто перевожу из строк в байты...мне нужно получить
программный код(байтовый массив)..."дамп памяти" его еще называют
а чтоб его получить нужно по байтно прочитать файл...нужно учесть
сегментные и линейные адреса а также котрольную сумму проверить итд.

спасибо за ответ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.