Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как преобразовать каждые 2 байта в AnsiString в 16 формат? / 5 сообщений из 5, страница 1 из 1
08.04.2005, 18:54
    #33005874
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать каждые 2 байта в AnsiString в 16 формат?
Т.е. имеем строку AnsiString вида "df673rty", а мне её надо отобразить как "ff 16 25, e1". Делаю
AnsiString dest;
for(int i=1; i<=s.Length(); i++)
{
dest.sprintf("%02X", s );
v.push_back(dest);
}
но вылазит какой-то бред! Помогите плиз, в чём дело?
...
Рейтинг: 0 / 0
08.04.2005, 21:12
    #33006031
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать каждые 2 байта в AnsiString в 16 формат?
Serega128...строку AnsiString вида "df673rty", а мне её надо отобразить как "ff 16 25, e1"...


Хм... не вижу никакой связи между строками. Может озвучишь изначальную постановку?
...
Рейтинг: 0 / 0
09.04.2005, 12:25
    #33006321
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать каждые 2 байта в AnsiString в 16 формат?
>mayton

Ну я имею строку вида "df673rty" (так она отображается по ShowMessage), а мне надо получить её в шестнадцатеричном виде.
...
Рейтинг: 0 / 0
09.04.2005, 12:54
    #33006336
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать каждые 2 байта в AnsiString в 16 формат?
Вот пример кода, кому не в лом, проверьте плиз:


vector <AnsiString>v;
AnsiString s = "??\nuuuu(";
AnsiString dest;
for(int i=1; i<=s.Length(); i++)
{
dest.sprintf("%02X", s );
v.push_back(dest);
}

for(int i=0; i<v.size(); i++)
Memo1->Lines->Add(v);

v.clear();

Выведет такое:
FFFFFFFF
FFFFFFFD
0A
75
75
75
75
28

Так вот в выводе смущают FFFFFFFF и FFFFFFFD, должно быть FF и FD.

Это я с модемом по СОМ-порту так работаю.
...
Рейтинг: 0 / 0
09.04.2005, 17:01
    #33006494
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать каждые 2 байта в AnsiString в 16 формат?
Вот! (с)Rius на www.cbuilder.ru


AnsiString source = "яэ";
AnsiString dest;
for(int i=0; i<source.Length(); i++)
{
unsigned char s = source.c_str() ;
dest += IntToHex(s,2) + " ";
}
Caption = dest;
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как преобразовать каждые 2 байта в AnsiString в 16 формат? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]