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