Einzelnen Beitrag anzeigen

ice.icewing

Registriert seit: 10. Feb 2005
17 Beiträge
 
#11

Re: Universale ToHex und FromHex procedure/function

  Alt 6. Mär 2007, 08:56
Ach so einfach kann man das lösen.

Ich hab es vor Wochen wesentlich aufwendiger gemacht, aber sieht dafür schöner aus.

Delphi-Quellcode:
function TMainForm.HexBauen(TS : TStream) : String;
var S : String;
    i,j : integer;
    c : String;
    Mybyte, MybyteL : byte;
    TSS : TStringStream;
begin
  TSS := TStringStream.create('');
  TSS.CopyFrom(TS,TS.Size);
  TSS.Seek(0,0);
  Result := '';
  j := 1;
  setlength(S, TS.Size*2);
  c := TSS.ReadString(TS.Size);
  for i := 1 to TSS.Size do begin
    Mybyte := Byte(c[i]);
    asm
      mov al,Mybyte
      mov ah,al
      and al,00001111b
      and ah,11110000b
      cmp al,00001001b
      jg @m1
      add al,48d
      jmp @m2
@m1: add al,55d
@m2: shr ah,4
      cmp ah,00001001b
      jg @m3
      add ah,48d
      jmp @ende
@m3: add ah,55d
@ende: mov MyByteL,al
      mov MyByte,ah
    end;
    S[j] := char(MyByte);
    inc(j);
    S[j] := Char(MyByteL);
    inc(j);
  end;
  Result := S;
end;
Also viele Weg führen nach Rom.

icewing
J. Renner
  Mit Zitat antworten Zitat