22 Stimmen

Delphi/Lazarus: Byte Array als String aus HEX-Werten anzeigen

Tipp von Delphianer | Letztes Update am 02.04.2021 | Erstellt am 02.02.2014

Bei der Arbeit mit Byte Arrays stellt sich früher oder später die Frage nach einer Visualisierung. Hier bietet es sich an, die einzelnen Bytes in hexadezimaler Form als String auszugeben. In diesem Tipp möchte ich euch eine Funktion zeigen, die genau dies macht.

Wir benutzen in dem Beispiel die folgende Definition eines Byte Arrays:

type
  TByteArr = array of Byte;

Die Funktion geht den Byte Array Byte für Byte durch und wandelt jeden einzelnen Byte-Wert in den entsprechenden hexadezimalen Wert um:

function ByteArrayToHexString(BA: TByteArr; Sep: string = ''): string;
var
  i, k: integer;
begin
  result:='';

  if Sep='' then begin
     for i:=low(BA) to high(BA) do 
       result := result + IntToHex(BA[i], 2);
  end else begin
     k:=high(BA);
     for i:=low(BA) to k do begin
        result:= result + IntToHex(BA[i], 2);
        if k<>i then result := result + Sep;
     end;
  end;
end; 

Die Funktion kann einmal nur mit einem Byte Array aufgerufen werden oder optional mit einem Trennzeichen, das zwischen die einzelnen Bytes zur besseren Übersichtlichkeit geschrieben wird.

var
  BA: TByteArr;
  s: string;
begin
  SetLength(BA, 3);
  BA[0] := 65;
  BA[1] := $41;
  BA[2] := %1000001; // geht nur in Lazarus

  s := ByteArrayToHexString(BA);        // 414141
  s := ByteArrayToHexString(BA, ' ');   // 41 41 41

In diesem Beispiel erstellen wir uns zunächst einen Byte Array, der 3 Bytes lang ist und füllen diesen anschließend mit Werten. Danach benutzen wir unsere Funktion, um diese Werte auszugeben.

Byte Array laden und speichern

In diesem Zusammenhang ist auch interessant, wie man einen Byte Array aus einer Datei laden oder speichern kann.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.