Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Преобразование в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
8-1101646742
serko
2004-11-28 15:59
2005.03.20
Line in-->Microphone


14-1109586283
Ega23
2005-02-28 13:24
2005.03.20
Алёша Попович и Тугарин Змей


14-1109414052
07BB:080Dh
2005-02-26 13:34
2005.03.20
Пневматический автомат Калашникова


1-1109858480
Erik1
2005-03-03 17:01
2005.03.20
Выдление всей неактивной записи в DbEHGrid.


1-1109774445
Shizuku
2005-03-02 17:40
2005.03.20
Совместимость





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский