Hallo,
das ist zwar keine Unit, sondern nur 2 Funktionen, aber vielleicht sind sie für jemanden brauchbar 
 Zur Erklärung :
Zur Erklärung :
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:
 | function HexToDual(sHex:String):String;					 | 
		
	  
... erwartet als Parameter eine Hexadezimalzahl als String und gibt die passende Dualzahl als String mit Leerzeichen zwischen den Nibbles aus. Ist der Eingabeparameter keine gültige Hexadezimalzahl, ist das result eine entsprechende Meldung.
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:
 | function DualToHex(sdual:String):String;					 | 
		
	  
... erwartet als Parameter eine Dualzahl als String und gibt die passende Hexadezimalzahl als String aus. Ist der Eingabeparameter keine gültige Dualzahl, ist das result eine entsprechende Meldung.
Hier die Funktionen :
												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 
 | function HexToDual(sHex:String):String;
 var
 i: Integer;
 begin
 for i := 1 to length(shex) do
 begin
 case shex[i] of
 '0' : result := result + '0000 ';
 '1' : result := result + '0001 ';
 '2' : result := result + '0010 ';
 '3' : result := result + '0011 ';
 '4' : result := result + '0100 ';
 '5' : result := result + '0101 ';
 '6' : result := result + '0110 ';
 '7' : result := result + '0111 ';
 '8' : result := result + '1000 ';
 '9' : result := result + '1001 ';
 'A' : result := result + '1010 ';
 'B' : result := result + '1011 ';
 'C' : result := result + '1100 ';
 'D' : result := result + '1101 ';
 'E' : result := result + '1110 ';
 'F' : result := result + '1111 ';
 else       begin
 Result := sHex + ' ist keine gültige Hexadezimalzahl';
 exit;
 end;
 end;
 end;
 end;
 | 
		
	  
												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 57:
 58:
 59:
 60:
 61:
 62:
 63:
 64:
 65:
 66:
 67:
 68:
 69:
 70:
 
 | function DualToHex(sDual:String):String;
 var
 i: Integer;
 nNibble : Integer;
 nibble: string;
 tmpHex: string;
 sHex: string;
 begin
 if length(sdual) mod 4 > 0 then
 for i := 1 to (4 - (length(sdual) mod 4)) do
 sdual := '0' + sdual;
 
 sHex := '';
 nNibble := ((length(sdual) div 4));
 for i := 1 to nNibble do
 begin
 nibble := copy(sdual, ((i-1) * 4) +1 , 4);
 
 if nibble = '0000' then
 tmpHex := '0'
 else if nibble = '0001' then
 tmpHex := '1'
 else if nibble = '0010' then
 tmpHex := '2'
 else if nibble = '0011' then
 tmpHex := '3'
 else if nibble = '0100' then
 tmpHex := '4'
 else if nibble = '0101' then
 tmpHex := '5'
 else if nibble = '0110' then
 tmpHex := '6'
 else if nibble = '0111' then
 tmpHex := '7'
 else if nibble = '1000' then
 tmpHex := '8'
 else if nibble = '1001' then
 tmpHex := '9'
 else if nibble = '1010' then
 tmpHex := 'A'
 else if nibble = '1011' then
 tmpHex := 'B'
 else if nibble = '1100' then
 tmpHex := 'C'
 else if nibble = '1101' then
 tmpHex := 'D'
 else if nibble = '1110' then
 tmpHex := 'E'
 else if nibble = '1111' then
 tmpHex := 'F'
 else begin
 result := sdual + ' ist keine gültige Dualzahl';
 exit;
 end;
 sHex := sHex + tmpHex;
 end;
 result := sHex;
 end;
 |