serg128 |
Отправлено: 08.04.2005, 17:55 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Т.е. имеем строку AnsiString вида "df673rty", а мне её надо отобразить как "ff 16 25, e1". Делаю
AnsiString dest;
for(int i=1; i<=s.Length(); i++)
{
dest.sprintf("%02X", s);
v.push_back(dest);
}
но вылазит какой-то бред! Помогите плиз, в чём дело? |
|
vvoid |
Отправлено: 08.04.2005, 18:14 |
|
Машинист паровоза
Группа: Участник
Сообщений: 171
|
Напиши, плз, поподробнее в чём проблема, а то я чего-то не могу врубить каким образом ты из "df673rty" получаешь "ff 16 25, e1". Думаю, что красная запятая является лишней.
|
|
** serg128 |
Отправлено: 09.04.2005, 11:58 |
|
Не зарегистрирован
|
Вот пример кода, кому не в лом, проверьте плиз:
vector 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
Memo1->Lines->Add(v);
v.clear();
Выведет такое:
FFFFFFFF
FFFFFFFD
0A
75
75
75
75
28
Так вот в выводе смущают FFFFFFFF и FFFFFFFD, должно быть FF и FD.
Это я с модемом по СОМ-порту так работаю. |
|
Rius |
Отправлено: 09.04.2005, 13:53 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
ты скажи, что тебе надо вывести и как?
глюк с FFFFFFFD у меня был с функцией IntToHex
Отредактировано Rius — 09/04/2005, 16:56
|
|
serg128 |
Отправлено: 09.04.2005, 14:28 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
мля, уже не знаю как и объяснить...
Ну в общем надо преобразовать каждый байт(символ) строки в Hex. IntToHex тут не прокатит — в строке есть не только числа... |
|
Rius |
Отправлено: 09.04.2005, 14:39 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
Так сойдет?
CODE | AnsiString source = "abcdefg jhgusdhhfd5345";
AnsiString dest;
for(int i=0; i<source.Length(); i++)
{
unsigned char s = source.c_str()[i];
dest += IntToHex(s,2) + " ";
}
Caption = dest; |
Подредактируй под свою задачу.
Каждый один символ в AnsiString представлен одним байтом (в WideString — 2)
|
|
serg128 |
Отправлено: 09.04.2005, 15:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Пасиба, кажись работает, вот только с WideString-2 не сильно то и понятно, ну эт наверно после пива.... |
|
Konstantine |
Отправлено: 11.04.2005, 08:04 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
не грузись WideString-ом и не отвлекайсь от пива
AnsiString — он и только он... для твоей задачи ничё более не нужно
|
|
Asher |
Отправлено: 11.04.2005, 08:12 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
CODE |
dest.sprintf("%02.2X", s[i]);
|
|
|