Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
EEjester
1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
#1

Правильная конвертация HexToStr - Delphi

31.07.2015, 08:17. Просмотров 766. Ответов 4
Метки нет (Все метки)

Есть строка вида
XML
1
01 00 01 2E
Если преобразовать в hex то выводит только 2E - точка '.'
Вместо 01 00 01 доллжен выводить 101, но не выводит.

Использую такую функцию:
Delphi
1
2
3
4
5
6
7
function HexToStr(H: String): String;
var I: Integer;
begin
  Result:= '';
  for I := 1 to length (H) div 2 do
    Result:= Result+Char(StrToInt('$'+Copy(H,(I-1)*2+1,2)));
end;
Добавлено через 5 минут
Вот пишу
Delphi
1
ShowMessage(HexToStr('0100012E'));
Выдает только точку.

Добавлено через 13 минут
Походу надо конвертировать бинарные данные в стринг а не хекс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 08:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Правильная конвертация HexToStr (Delphi):

Не правильная работа ini
Короче суть проблемы - данные выводятся не как надо - label1 и 2 записываются,а...

Правильная запись формулы
Как правильно записать вот эту формулу в Delphi: Я про бывал вот так:...

Правильная работса с ini
Здравствуйте уважаемые посетители данного сайта. У меня к вам такой вопрос, не...

Правильная компиляция проекта
Привет:) Я установила на Делфи(7 версия) очень много компонентов. Когда я...

Правильная выгрузка dll
Доброго времени. Вопрос собственно в следующем, я подгружаю библиотеку которая...

Правильная запись на языке Delphi
Доброго времени суток, нужна помощь в состовлении правильного алгоритма. Нужно...

4
Sergio Leone
2462 / 1107 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
31.07.2015, 08:20 #2
Цитата Сообщение от EEjester Посмотреть сообщение
Вместо 01 00 01 доллжен выводить 101, но не выводит.
ты заблуждаешься. Не должен. строка "101" в виде байт будет выглядеть 31 30 31
1
EEjester
1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
31.07.2015, 08:43  [ТС] #3
Точно! ты прав! Тогда как мне со строки 01 00 01 получить данные 101 ?
А например со строки 07 1f получить 715 ?
Как я понял это бинарные данные что ли...
0
Sergio Leone
2462 / 1107 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
31.07.2015, 08:47 #4
Цитата Сообщение от EEjester Посмотреть сообщение
например со строки 07 1f получить 715 ?
к значению каждого байта прибавляй код нуля. вот и всё:
Delphi
1
2
3
4
5
6
7
8
9
10
function HexToStr(H: String): String;
var I, b: Integer;
begin
  Result:= '';
  for I := 1 to length (H) div 2 do begin
    b := StrToInt('$'+Copy(H,(I-1)*2+1,2));
    if b<10 then  b := b+ord('0');
    Result:= Result+Char(b);
  end;
end;
0
EEjester
1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
31.07.2015, 08:52  [ТС] #5
HexToStr... проблема решена.
0
31.07.2015, 08:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 08:52
Привет! Вот еще темы с решениями:

Правильная кодировка html кода
Опачки и опять вопрос про кодировку. Не нашел ни чего путного, поэтому и...

Delphi XE правильная установка компанента
Добрый день. Не могу понять как установить компонент...

Не правильная блок-схема что не так?
программный код выглядит так: procedure TForm1.Button1Click(Sender: TObject);...

Не правильная работа Wcript2 в Delphi 2010
Ребят, имеется такой код: const Password: String = 'Пароль'; type...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru