[Back to NUMBERS SWAG index]  [Back to Main SWAG index]  [Original]

{
GREG VIGNEAULT

> So to assign the File I will need the HEX in String format.
}

Type
  String8 = String[8];

Var
  MyStr : String8;
  ALong : LongInt;

{ convert a LongInt value to an 8-Character String, using hex digits  }
{ (using all 8 Chars will allow correct order in a sorted directory)  }

Procedure LongToHex(AnyLong : LongInt; Var HexString : String8);
Var
  ch    : Char;
  Index : Byte;
begin
  HexString := '00000000';                  { default to zero   }
  Index := Length(HexString);               { String length     }
  While AnyLong <> 0 do
  begin                                     { loop 'til done    }
    ch := Chr(48 + Byte(AnyLong) and $0F);  { 0..9 -> '0'..'9'  }
    if ch > '9' then
      Inc(ch, 7);                           { 10..15 -> 'A'..'F'}
    HexString[Index] := ch;                 { insert Char       }
    Dec(Index);                             { adjust chr Index  }
    AnyLong := AnyLong SHR 4;               { For next nibble   }
  end;
end;

begin
  ALong := $12345678;                       { a LongInt value   }
  LongToHex(ALong, MyStr);                  { convert to hex str}
  WriteLn;
  WriteLn('$', MyStr);                      { display the String}
  WriteLn;
end.

[Back to NUMBERS SWAG index]  [Back to Main SWAG index]  [Original]