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

Ваш аккаунт

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

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

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

Преобразования типов

15K
24 мая 2006 года
9byte
5 / / 17.03.2006
Нужно преобразовать переменную из типа String в тип BYTE.
Пробовал писать так:
 
Код:
AnsiString str = "0x01";
char *ch = str.c_str();
BYTE b = BYTE(ch);

но это скорее всего не правильно.
Подскажите, как правильно преобразовывать, плз
406
24 мая 2006 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by 9byte
Нужно преобразовать переменную из типа String в тип BYTE.
Пробовал писать так:
 
Код:
AnsiString str = "0x01";
char *ch = str.c_str();
BYTE b = BYTE(ch);

но это скорее всего не правильно.
Подскажите, как правильно преобразовывать, плз


Не знаю AnsiString но по идеи должно работать так:
AnsiString str = "0x01";
int numbyte=0;
BYTE b = str[numbyte];

15K
24 мая 2006 года
9byte
5 / / 17.03.2006
Цитата:
Originally posted by vitaly2003s
Не знаю AnsiString но по идеи должно работать так:
AnsiString str = "0x01";
int numbyte=0;
BYTE b = str[numbyte];



Не работает. Вызалит ошибка: "Access violation at address 40009720 in module 'rtl60.bpl'. Read of address 60382603" :(

929
24 мая 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by 9byte
Нужно преобразовать переменную из типа String в тип BYTE.
Пробовал писать так:
 
Код:
AnsiString str = "0x01";
char *ch = str.c_str();
BYTE b = BYTE(ch);

но это скорее всего не правильно.
Подскажите, как правильно преобразовывать, плз


 
Код:
AnsiString str = "0x01";
BYTE b;
sscanf(str.c_str(), "%x", &b);
14K
25 мая 2006 года
viva
27 / / 07.04.2006
Цитата:
Originally posted by 9byte
Нужно преобразовать переменную из типа String в тип BYTE.
Пробовал писать так:
 
Код:
AnsiString str = "0x01";
char *ch = str.c_str();
BYTE b = BYTE(ch);

но это скорее всего не правильно.
Подскажите, как правильно преобразовывать, плз


Если подразумевается что str присваивается не последовательность символов '0','x','0','1', то всё правильно, кроме последней строчки

 
Код:
BYTE b=BYTE(ch[0]);

получим символ '0'.
Если же это число, то неверна первая строчка. Надо писать так:
 
Код:
AnsiString str = "\x01";
3
25 мая 2006 года
Green
4.8K / / 20.01.2000
9byte неправильно сформулировал вопрос.
Ему нужно не преобразование типов, а преобразование текстовое представление числа в численное значение.
Т.е. для
AnsiString str = "0x01";
он хочет
BYTE b = 0x01;

В поиск по ключам: преобразование, преобразование строк, и т.п.

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