Текущий архив: 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.48 MB
Время: 0.032 c