Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Преобразование в HEX   Найти похожие ветки 

 
Veles   (2005-03-03 09:28) [0]

Имею строку:
0410042D0420041E0424041B041E0422005F0421041F042004100412041A0410
формат - String
необходимо преобразовать ее в HEX
Подскажите КАК ?!
Поясняю: строка представляет собой часть телефонной книги сотового телефона в кодировке UCS2 (Русский) - фамилия - хочу что бы естественно в Delphi тоже все было по русски...


 
Anatoly Podgoretsky ©   (2005-03-03 09:32) [1]

Ничего не надо делать, это уже Хекс строка


 
Digitman ©   (2005-03-03 09:56) [2]

приведи точный вид этого фрагмента тел.книги, так как он выглядит на дисплее сотового ..


 
Cosinus ©   (2005-03-03 10:01) [3]


> Anatoly Podgoretsky ©   (03.03.05 09:32) [1]
Он не то хочет...

> Digitman ©   (03.03.05 09:56) [2]
На дисплее как русская фамилия


> Veles   (03.03.05 09:28)  

// Функция перевода (НЕХ-представление числа):string в строку из n-ых символов
// Первый байт становиться первым символом
// Пример: HexToStrN("30313233":string)="0123":string
function HexToStrN(Value:String):string;
Var
 i:byte;
 SLen:word;
 s:string;
 Sd:string;
begin
 SLen:=Length(Value) div 2;
 For i:=1 to SLen do
 begin
   Sd:="$"+copy(Value,i*2-1,2);
   s:=s+Chr(StrToInt(Sd));
 end;
Result:=s;
end;


 
Anatoly Podgoretsky ©   (2005-03-03 10:27) [4]

Cosinus ©   (03.03.05 10:01) [3]
Он не то хочет...

Что он хочет не сообщает, запросил же Хекс.


 
Digitman ©   (2005-03-03 10:32) [5]

и зачем тебе Хекс понадобился - ума не приложу ..
это похоже на удаление гландов на приеме у проктолога)

var
 i,j: Integer;
 s, lo, hi: String;
 ws: WideString;
..  s := "0410042D0420041E0424041B041E0422005F0421041F042004100412041A0410";
 setlength(ws, Length(s) div 4);
 j := 1;
 for i := 1 to Length(ws) do
   begin
     hi := "$" + Copy(s, j, 2);
     lo := "$" + Copy(s, j + 2, 2);
     ws[i] := WideChar(StrToInt(hi) shl 8 + StrToInt(lo));
     Inc(j, 4)
   end;
 showmessage(ws);


 
Cosinus ©   (2005-03-03 10:41) [6]


> Anatoly Podgoretsky ©   (03.03.05 10:27) [4]
Не надо передергивать. Он по моему ясно сказал, что есть Value:string. Он хочет преобразовать его в Hex для отображения некоторых символов, описываемых этими hex. Если оперировать не паскалевскими терминами, где IntToHex-делает как раз такую строку, как в примере у автора, а определением Hex-как представление числа в шестнадцатиричном формате, то по моему все довольно прозрачно. И вы отлично поняли, что он хотел сказать. Подробное разжевывание, конечно никогда не повредит, но ИМНО здесь это лишнее.
С уважением.

>Автору
Забыл сказать, что, видимо все равно придется писать "конвертер" USC2<>ANSI.


 
Erik1 ©   (2005-03-03 10:47) [7]

Так исходная строка представлена в бинарном виде или переведена в стринговое HEX представление?


 
Digitman ©   (2005-03-03 10:48) [8]


> все равно придется писать "конвертер" USC2<>ANSI


нафига ?

USC2 - это тот же Юникод, а Делфи без вопросов преобразует Юникод-строку в Ansi-строку

пример в [5] выаодит строку "АЭРОФЛОТ ..чего-то там еще, не помню"


 
Digitman ©   (2005-03-03 10:50) [9]


> Erik1 ©   (03.03.05 10:47) [7]


да по барабану как она представлена)

суть одна - в этой белиберде закодирована вышеупомянутая мной фраза


 
Veles   (2005-03-03 10:53) [10]

Поясняю:
Эта строка:
0410042D0420041E0424041B041E0422005F0421041F042004100412041A0410
получена с ком порта телефона путем передачи туда команды AT+CPBR
Фактически строка является ФАМИЛИЕЙ человека - в телефоне русский
в кодировке USC2, соответственно отзыв телефона записывается в текстовый файл, затем в моей программе читается этот файл. Понятно что нужно что бы пользовтель видел ФАМИЛИЮ по русски а не в виде набора цифр. Что собираюсь делать:
сначала Hex2Bin, потом преобразую PChar в PWideChar, а далее WideCharToString.
Но на этапе Hex2Bin заткнулся - ведь я беру из текстового файла, а это СТРОКА !


 
Digitman ©   (2005-03-03 10:58) [11]


> Фактически строка является ФАМИЛИЕЙ


признаться, довольно странная у человека фамилия - "АЭРОПОРТ_СПРАВКА"

)


> нужно что бы пользовтель видел ФАМИЛИЮ


так а нафига тебе HEX-то тогда ?
сразу и пиши в файл строку, полученную, например, вышеприведенным алгоритмом ..


 
Veles   (2005-03-03 10:59) [12]

Digitman ! Спасибо! Я очень Вам благодарен
Все понял...


 
Cosinus ©   (2005-03-03 11:01) [13]


> Veles   (03.03.05 10:53) [10]
Я что то не понял, ни мой вариант, ни вариант Digitman-а не подходят что ли?


> Digitman ©   (03.03.05 10:48) [8]
А-а-а... Я просто не знал, а глядеть лень было. Я хотел написать, что конвертер понадобится, только если кодировка "нестандартная", но решил, что меня за такую формулировку, закидают сапогами.



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.063 c
3-1108631800
AndrewKsionz
2005-02-17 12:16
2005.03.20
Как поместить картинку jpeg в Graphic-поле


14-1109711634
Игорь Шевченко
2005-03-02 00:13
2005.03.20
Катя, с днем рождения!


4-1107345027
vratar
2005-02-02 14:50
2005.03.20
Защита диска


3-1108833569
Leonardo
2005-02-19 20:19
2005.03.20
Как получить верный результат используя SUM()


1-1110230253
Ермак
2005-03-08 00:17
2005.03.20
Отловить перемещение окна