Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Universale ToHex und FromHex procedure/function (https://www.delphipraxis.net/87756-universale-tohex-und-fromhex-procedure-function.html)

ice.icewing 6. Mär 2007 08:56

Re: Universale ToHex und FromHex procedure/function
 
Ach so einfach kann man das lösen. :wall:

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

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

IngoD7 6. Mär 2007 09:54

Re: Universale ToHex und FromHex procedure/function
 
Zitat:

Zitat von Hawkeye219
Zitat:

Also das war dein sinn? Und warum hast du da (abgesehen von den tausend anderen Varianten) nicht einfach das Zeichen abgespeichert, was du unter pchar gefunden hast
yankee möchte mit den vorgestellten Routinen beliebige binäre Daten in eine Textform überführen, um sie anschließend beispielsweise in einer .ini-Datei abzuspeichern.

Davon war zwar nicht direkt die Rede, aber so sehe ich das auch.
Um Steuerzeichen im Ergebnisstring auszuschließen ist die 64 Byte lange Hex-Darstellung des 32 Byte langen Sets äusserst sinnig.

sirius 6. Mär 2007 10:58

Re: Universale ToHex und FromHex procedure/function
 
:wall: Danke Ingo!

Jetzt hab ichs auch kapiert :stupid:
Man will das ganze in einer Textdatei abspeichern. Alles klar. Nur warum unbedingt in eine Textdatei :gruebel: Naja, das könnte durchaus mal passieren. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz