home *** CD-ROM | disk | FTP | other *** search
- unit unUtility;
-
- interface
- procedure BinaryToHex( vaSource : OleVariant;
- var sDestination : String );
- procedure HexToBinary( sSource : String;
- var vaDestination : OleVariant );
-
- implementation
-
- uses
- Sysutils;
-
- procedure BinaryToHex( vaSource : OleVariant;
- var sDestination : String );
- var
- lBufferLen : Integer;
- pcData : PChar;
- I : Integer;
- begin
- sDestination := '';
- if ( not VarIsEmpty( vaSource ) ) then
- begin
- lBufferLen := VarArrayHighBound( vaSource, 1 ) -
- VarArrayLowBound( vaSource, 1 ) + 1;
-
- pcData := VarArrayLock( vaSource );
- For I := 0 To lBufferLen - 1 do
- begin
- sDestination := sDestination + IntToHex( Ord( pcData[I] ), 2 );
- end;
- VarArrayUnlock( vaSource );
- end;
- end;
-
- procedure HexToBinary( sSource : String;
- var vaDestination : OleVariant );
- var
- I : Integer;
- lSourceSize : Integer;
- pcData : PChar;
- begin
- lSourceSize := Length( sSource );
- vaDestination := VarArrayCreate( [0, ( lSourceSize div 2 ) - 1], varByte );
-
- pcData := VarArrayLock( vaDestination );
-
- for I := 0 to ( lSourceSize div 2 ) - 1 do
- begin
- pcData[i] := Char( StrToInt( '$' + sSource[I*2+1] + sSource[I*2+2] ) );
- end;
-
- VarArrayUnlock( vaDestination );
- end;
-
- end.
-