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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 20:05   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Dec to Hex to Dec translator

Делаю автокликер, который будет работать по скриптам (для универсальности). Скрипт предполагается использовать бинарный. Так вот тестовые скрипты пишу в хекс редакторе. уже надоело переводить все числа в хекс вид и обратно. Поэтому накатал Hex to Dec to Hex прогу.

В общем выкладываю как пособие и помощник:

Код:
Function CheckHex(_S : String):Boolean;
Var
 I : Integer;
Begin
 Result := True;
 For I := 1 to Length(_S) do
  Begin
   If _S[I]<>'0' Then
   If _S[I]<>'1' Then
   If _S[I]<>'2' Then
   If _S[I]<>'3' Then
   If _S[I]<>'4' Then
   If _S[I]<>'5' Then
   If _S[I]<>'6' Then
   If _S[I]<>'7' Then
   If _S[I]<>'8' Then
   If _S[I]<>'9' Then
   If _S[I]<>'A' Then
   If _S[I]<>'B' Then
   If _S[I]<>'C' Then
   If _S[I]<>'D' Then
   If _S[I]<>'E' Then
   If _S[I]<>'F' Then
    Result := False;
  End;
End;

Function CheckDec(_S : String):Boolean;
Var
 I : Integer;
Begin
 Result := True;
 For I := 1 to Length(_S) do
  Begin
   If _S[I]<>'0' Then
   If _S[I]<>'1' Then
   If _S[I]<>'2' Then
   If _S[I]<>'3' Then
   If _S[I]<>'4' Then
   If _S[I]<>'5' Then
   If _S[I]<>'6' Then
   If _S[I]<>'7' Then
   If _S[I]<>'8' Then
   If _S[I]<>'9' Then
    Result := False;
  End;
End;

procedure TFRMMain.BTNHexToDecClick(Sender: TObject);
Var
 I : Integer;
 S : String;
begin
 S := EDTHex.Text;
 If Length(S)<9 Then
  Begin
   If Length(S) = 0 Then ShowMessage('Пожалуйста, введите шестнадцатиричное число') Else
   If CheckHex(S) Then
    Begin
     I := StrToInt('$'+S);
     EDTDec.Text := IntToStr(I);
    End
   Else
    ShowMessage('Пожалуйста, используйте только шестнадцатиричные цифры'+#10+#13+'при написании шестнадцатиричного числа');
  End
 Else
  ShowMessage('Пожалуйста, введите шестнадцатиричное число поменьше.');
end;

procedure TFRMMain.BTNDecToHexClick(Sender: TObject);
Var
 I : Integer;
 S : String;
begin
 S := EDTDec.Text;
 If Length(S)<10 Then
  Begin
   If Length(S) = 0 Then ShowMessage('Пожалуйста, введите десятичное число') Else
   If CheckDec(S) Then
    Begin
     I := StrToInt(S);
     EDTHex.Text := IntToHex(I,8);
    End
   Else
    ShowMessage('Пожалуйста, используйте только десятичные цифры'+#10+#13+'при написании десятичного числа');
  End
 Else
  ShowMessage('Пожалуйста, введите десятичное число поменьше.');
end;
Да, код можно оптимизировать и сократить наполовину. Но не стал по следующим причинам:

1) Так понятней и наглядней.
2) Лень.

Вот заархивированный исполняемый:
Вложения
Тип файла: zip DtHtD.zip (146.3 Кб, 19 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
String[3] => Hex => Dec Alex Cones Общие вопросы Delphi 5 21.03.2010 17:07
Dec to Hex - пример использования Roof Общие вопросы Delphi 8 03.08.2008 19:40
HEX ->DEC 69_rus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.06.2007 20:44