File als Hex-Dump lesen+bearbeiten

Ich möchte ein File (Bildfile aus der Medizin) einlesen und byteweise ansehen und bearbeiten).
Wie kann ich das machen?
Inzwischen habe ich versucht ein Bildfile als File of Byte einzuladen.
Ich will ein Byte aus dem ganzen auf einem Form mit Label.Caption darstellen. Nur ist Label.Caption nicht mit Byte kompatible.
Nun suche ich im ersten Schritt Byte-Typ mit einer String-Type-Function darzustellen, was mir nicht gelang.
Kann mir jemand einen Tip zum allgemeinem oder letzten konkreten geben.

Vielen Dank

Eyck

Hallo,

Ich möchte ein File (Bildfile aus der Medizin) einlesen und
byteweise ansehen und bearbeiten).

Bilder byteweise? Das ist aber ein ziemlich ungewöhnlicher Wunsch?!

Nun suche ich im ersten Schritt Byte-Typ mit einer
String-Type-Function darzustellen, was mir nicht gelang.

Hier ist eine Funktion, die einen Byte-Wert (0…255) annimmt und den entsprechenden (mit Pascal-Präfix ‚$‘ versehenen) String (’$00’…’$FF’) zurückliefert:

FUNCTION ByteToString (b: BYTE): STRING;

CONST
 NIBBLECHAR:
 ARRAY[$0..$F] OF CHAR
 = ('0','1','2','3','4','5','6','7',
 '8','9','A','B','C','D','E','F');

VAR s: STRING;

begin
 SetLength(s,2);
 s[1] := NIBBLECHAR[b DIV 16];
 s[2] := NIBBLECHAR[b MOD 16];

 Result := '$'+s
end;

Die analoge Umwandlungsfunktion für Word-Werte („Word zu String“) kann ich Ihnen auch geben:

FUNCTION WordToString (w: WORD): STRING;

CONST
 NIBBLECHAR:
 ARRAY[$0..$F] OF CHAR
 = ('0','1','2','3','4','5','6','7',
 '8','9','A','B','C','D','E','F');

VAR s: STRING;

begin
 SetLength(s,4);
 s[1] := NIBBLECHAR[w DIV $1000];
 w := w AND $0FFF;
 s[2] := NIBBLECHAR[w DIV $0100];
 w := w AND $00FF;
 s[3] := NIBBLECHAR[w DIV $0010];
 w := w AND $000F;
 s[4] := NIBBLECHAR[w];

 Result := '$'+s
end;

Ich hoffe, ich konnte Ihnen helfen. Zur Bearbeitung beliebiger Dateien „auf Byte-Ebene“ stehen auf dem Freeware- und Shareware-Markt übrigens mehrere fertige Programme – sogenannte „Hex-Editoren“ – zur Auswahl. Wäre eine solcher Hex-Editor zur Lösung Ihrer Aufgabe vielleicht auch geeignet?

Mit freundlichem Gruß
Martin