Преобразование байтового массива в строку (NXC)
Есть ли способ показать массив байтов на экране NXT (используя NXC)?
Я пытался так:
unsigned char Data[];
string Result = ByteArrayToStr(Data[0]);
TextOut(0, 0, Result);
Но это дает мне File Error! -1
,
Если это невозможно, как я могу посмотреть значение Data[0]
во время программы?
2 ответа
Если вы хотите показать байтовый массив в шестнадцатеричном формате, вы можете сделать это:
byte buf[];
unsigned int buf_len = ArrayLen(buf);
string szOut = "";
string szTmp = "00";
// Convert to hexadecimal string.
for(unsigned int i = 0; i < buf_len; ++i)
{
sprintf(szTmp, "%02X", buf[i]);
szOut += szTmp;
}
// Display on screen.
WordWrapOut(szOut,
0, 63,
NULL, WORD_WRAP_WRAP_BY_CHAR,
DRAW_OPT_CLEAR_WHOLE_SCREEN);
Ты можешь найти WordWrapOut()
здесь
Если вы просто хотите преобразовать его в ASCII:
unsigned char Data[];
string Result = ByteArrayToStr(Data);
TextOut(0, 0, Result);
Если вы хотите отобразить только один символ:
unsigned char Data[];
string Result = FlattenVar(Data[0]);
TextOut(0, 0, Result);
Пытаться byte
, byte
является unsigned char
в NXC.
PS В BricxCC есть отладчик, находящийся в стадии разработки (я полагаю, что вы работаете в Windows). Посмотри здесь
РЕДАКТИРОВАТЬ: код компилируется и выполняется, но ничего не делает.