استفسار بخصوص تحويل قيم الهيكس
#7
إقتباس :اخي هذا الكود لا يعمل بعد التجريب

يجب اضافة علامة الدولار Smile
PHP كود :
Edit2.Text := IntToStr(StrToInt('$' + Edit1.Text)); 

بالنسبة للسؤال الثاني :
إقتباس :هل ممكن طريقة تجعل كتابة البيانات بالهكس تفصل بينها مسافة بشكل الي ...وللتوصيح مثلا حين نكتب ffffff تصبح داخل البرنامج بهذا التنسيق ff ff ff

هذا حل على السريع :
PHP كود :
{ ===> By SMP3 <=== }
const
  
TwoHexLookup: packed array [0 .. 255] of array [1 .. 3] of Char = ( //
    
'00 ', '01 ', '02 ', '03 ', '04 ', '05 ', '06 ', '07 ', '08 ', '09 ', '0A ', '0B ', '0C ', '0D ', '0E ', '0F ', '10 ', '11 ', '12 ', '13 ', '14 ', '15 ',
    
'16 ', '17 ', '18 ', '19 ', '1A ', '1B ', '1C ', '1D ', '1E ', '1F ', '20 ', '21 ', '22 ', '23 ', '24 ', '25 ', '26 ', '27 ', '28 ', '29 ', '2A ', '2B ',
    
'2C ', '2D ', '2E ', '2F ', '30 ', '31 ', '32 ', '33 ', '34 ', '35 ', '36 ', '37 ', '38 ', '39 ', '3A ', '3B ', '3C ', '3D ', '3E ', '3F ', '40 ', '41 ',
    
'42 ', '43 ', '44 ', '45 ', '46 ', '47 ', '48 ', '49 ', '4A ', '4B ', '4C ', '4D ', '4E ', '4F ', '50 ', '51 ', '52 ', '53 ', '54 ', '55 ', '56 ', '57 ',
    
'58 ', '59 ', '5A ', '5B ', '5C ', '5D ', '5E ', '5F ', '60 ', '61 ', '62 ', '63 ', '64 ', '65 ', '66 ', '67 ', '68 ', '69 ', '6A ', '6B ', '6C ', '6D ',
    
'6E ', '6F ', '70 ', '71 ', '72 ', '73 ', '74 ', '75 ', '76 ', '77 ', '78 ', '79 ', '7A ', '7B ', '7C ', '7D ', '7E ', '7F ', '80 ', '81 ', '82 ', '83 ',
    
'84 ', '85 ', '86 ', '87 ', '88 ', '89 ', '8A ', '8B ', '8C ', '8D ', '8E ', '8F ', '90 ', '91 ', '92 ', '93 ', '94 ', '95 ', '96 ', '97 ', '98 ', '99 ',
    
'9A ', '9B ', '9C ', '9D ', '9E ', '9F ', 'A0 ', 'A1 ', 'A2 ', 'A3 ', 'A4 ', 'A5 ', 'A6 ', 'A7 ', 'A8 ', 'A9 ', 'AA ', 'AB ', 'AC ', 'AD ', 'AE ', 'AF ',
    
'B0 ', 'B1 ', 'B2 ', 'B3 ', 'B4 ', 'B5 ', 'B6 ', 'B7 ', 'B8 ', 'B9 ', 'BA ', 'BB ', 'BC ', 'BD ', 'BE ', 'BF ', 'C0 ', 'C1 ', 'C2 ', 'C3 ', 'C4 ', 'C5 ',
    
'C6 ', 'C7 ', 'C8 ', 'C9 ', 'CA ', 'CB ', 'CC ', 'CD ', 'CE ', 'CF ', 'D0 ', 'D1 ', 'D2 ', 'D3 ', 'D4 ', 'D5 ', 'D6 ', 'D7 ', 'D8 ', 'D9 ', 'DA ', 'DB ',
    
'DC ', 'DD ', 'DE ', 'DF ', 'E0 ', 'E1 ', 'E2 ', 'E3 ', 'E4 ', 'E5 ', 'E6 ', 'E7 ', 'E8 ', 'E9 ', 'EA ', 'EB ', 'EC ', 'ED ', 'EE ', 'EF ', 'F0 ', 'F1 ',
    
'F2 ', 'F3 ', 'F4 ', 'F5 ', 'F6 ', 'F7 ', 'F8 ', 'F9 ', 'FA ', 'FB ', 'FC ', 'FD ', 'FE ', 'FF ');

  
HexMask: array [0 .. 3] of DWORD = ($FF, $FF00, $FF0000, $FF000000);
  
HexMaskMove: array [0 .. 3] of DWORD = ($0, $8, $10, $18);

function 
IntToMyFormat(Value: UINT): string;
var
  
LValue: UInt64;
  
nDigit, i: integer;
begin
  Result 
:= '';
  
LValue := Value;
  if 
LValue and ($FF shl $18) <> 0 then
    nDigit 
:= 8
  
else if LValue and ($FF shl $10) <> 0 then
    nDigit 
:= 6
  
else if LValue and $FF00 <> 0 then
    nDigit 
:= 4
  
else
    
nDigit := 2;
  for 
i := (nDigit shr 1) downto 1 do
  
begin
    LValue 
:= Byte((Value and HexMask[i - 1]) shr HexMaskMove[i - 1]);
    
Result := Result + TwoHexLookup[LValue];
  
end;
  
Result := Trim(Result);
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  
sHex: string;
begin
  sHex 
:= IntToMyFormat($FFFFFF);
  
Edit2.Text := sHex; // sHex = FF FF FF  .
end; 
Open Your Source .. Open Your Mind
الرد


الردود في هذا الموضوع
استفسار بخصوص تحويل قيم الهيكس - بواسطة SMP3 - 09-10-2014, 11:30 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم