| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > как преобразовать элемент TStringList в char |
| Автор: =Женек= 8.2.2012, 18:29 |
| Господа дана строка из TStringList: Dat->Strings[i].SubString(4,2); Она содержит два символа, скажем "FF". Как мне получить переменную типа unsigned char, то есть 255 или символ с соответствующим кодом? |
| Автор: 586 8.2.2012, 19:22 | ||
|
| Автор: =Женек= 8.2.2012, 19:36 |
| По-моему не то.. в а будет число, означающее номер в таблице ASCII символа s[1] Впрочем, я уже проблему решил написав функцию. Я просто думал, что есть решение поизящней, типа HexStringToChar(string s, unsigned char c) |
| Автор: 586 8.2.2012, 19:41 | ||
А, понятно. Есть уже готовая функция - HexToBin:
|
| Автор: =Женек= 8.2.2012, 20:04 | ||
| Посоветовали сделать так: unsigned char n = strtol("A5" , NULL, 16);//n=165 Получилось. Но помогите заставить работать это:
|
| Автор: 586 8.2.2012, 20:30 |
| unsigned char n = strtol( Dat->Strings[1].SubString(2,2).c_str() , NULL, 16); |
| Автор: =Женек= 8.2.2012, 20:32 |
| Пытался сделать так. Выдает: [BCC32 Error] SMD_Reflow.cpp(1167): E2034 Cannot convert 'wchar_t *' to 'const char *' [BCC32 Error] SMD_Reflow.cpp(1167): E2342 Type mismatch in parameter '__s' (wanted 'const char *', got 'wchar_t *') |
| Автор: 586 8.2.2012, 21:01 |
| unsigned char n = wcstol( Dat->Strings[1].SubString(2,2).c_str() , NULL, 16); |
| Автор: =Женек= 8.2.2012, 21:06 |
| Опаньки, спасибо, работает! |