Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 08:50   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Вопрос HexToInt.

Подскажите где можно найти такую функцию:
Код:
HexToInt(Str : string): integer;
VintProg вне форума Ответить с цитированием
Старый 08.06.2010, 09:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так пойдёт?
Код:
function HexToInt(Str : string): integer;
var i, r : integer;
begin
  val('$'+Trim(Str),r, i);
  if i<>0 then HexToInt := 0 {была ошибка в написании числа}
  else HexToInt := r;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2010, 09:16   #3
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Serge_Bliznykov
Да не плохо работает, а это ты сам придумал?
VintProg вне форума Ответить с цитированием
Старый 08.06.2010, 09:17   #4
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Serge_Bliznykov
Да не плохо работает, а это ты сам придумал?
VintProg вне форума Ответить с цитированием
Старый 08.06.2010, 13:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Да не плохо работает, а это ты сам придумал?
даже не знаю, что ответить..
Да. Но я просто знал о том, что функция VAL понимает 16-чные числа в строке.... Дальше уже дело техники..

p.s. тут на форуме как-то подобное уже обсуждалось...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2010, 13:37   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

StrToInt если не ошибаюсь строки такого вида как $FF тоже переводит.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.06.2010, 14:11   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
StrToInt если не ошибаюсь строки такого вида как $FF тоже переводит.
Вы абсолютно правы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2010, 15:52   #8
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Ещё так
Код:
Function HEXToDec(S :String):Integer;
Var
 Otv, Step, I,II :LongInt;
 Chislo :LongInt;
begin
 Otv := 0;
  II := Length(S);
 Step := -1;
  Result := 0;
 For I:=II DownTo 1 Do
 begin
  Inc( Step );
   case S[I] of
  'A','a': Chislo := 10;
  'B','b': Chislo := 11;
  'C','c': Chislo := 12;
  'D','d': Chislo := 13;
  'E','e': Chislo := 14;
  'F','f': Chislo := 15;
  '0'..'9': Chislo := StrToInt(S[I]);
   end;
  Otv := Otv + Round(Chislo *Exp(Step*Ln(16)) );
 end;
  Result := Otv;
end;
Alter вне форума Ответить с цитированием
Старый 08.06.2010, 18:59   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А вот так можно наоборот:
Код:
function IntToHex (AValue: Integer): String;
begin
  Result := '$0000000' + Format ('%x', [AValue]);
  Delete (Result, 2, Length(Result) - 9)
end;
Sibedir вне форума Ответить с цитированием
Старый 08.06.2010, 19:28   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Sibedir, обратная функция итак по стандарту есть в Делфи.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц