Hi,
ich möchte gern eine Routine schreiben, die den Inhalt einer Datei hexadezimal und im Character Format anzeigt. Dazu habe ich die Datei zunächst mit ReadlAllBytes in einen Byte Array eingelesen.
Die einzelnen Bytes kann ich sehr einfach mit .Tostring("x2") in das hexadezimale äquivalent umwandeln.
Das Anzeigen der Character Darstellung habe ich mit Cstr() versucht. Aber das liefert mir nicht das Zeichen, sondern gibt einfach den numerischen Wert des Byte im Character Format zurück.
Anbei ein Screenshot zur Erbauung. Wie man sieht ist die "rechte" Seite des HexDisplays nicht richtig. Das ist es also nicht, was ich will.
Nun weiß ich ja, dass man ein Byte nicht einfach in ein Zeichen umsetzen kann - was angezeigt wird, hängt u.a. von der Encodierung ab. Ich möchte einfach das Byte in ein Zeichen umwandeln, wenn dies "problemlos" möglich ist. z.B. ist x'20 ein "Blank" und x'31 die Ziffer "1". Wenn es sich um nichtdarstellbare Sonderzeichen handelt, dann soll ein "Punkt" ausgegeben werden. Also etwas in dieser Art:
Ich habe versucht die Character Darstellung wie folgt zu erzeugen:
Aber das scheitert,weil GetString einen ARRAY von Bytes erwartet und kein einzelnes Byte.
Any bright ideas, wie ich das lösen kann ?
LG
Peter
ich möchte gern eine Routine schreiben, die den Inhalt einer Datei hexadezimal und im Character Format anzeigt. Dazu habe ich die Datei zunächst mit ReadlAllBytes in einen Byte Array eingelesen.
Die einzelnen Bytes kann ich sehr einfach mit .Tostring("x2") in das hexadezimale äquivalent umwandeln.
Das Anzeigen der Character Darstellung habe ich mit Cstr() versucht. Aber das liefert mir nicht das Zeichen, sondern gibt einfach den numerischen Wert des Byte im Character Format zurück.
Anbei ein Screenshot zur Erbauung. Wie man sieht ist die "rechte" Seite des HexDisplays nicht richtig. Das ist es also nicht, was ich will.
Nun weiß ich ja, dass man ein Byte nicht einfach in ein Zeichen umsetzen kann - was angezeigt wird, hängt u.a. von der Encodierung ab. Ich möchte einfach das Byte in ein Zeichen umwandeln, wenn dies "problemlos" möglich ist. z.B. ist x'20 ein "Blank" und x'31 die Ziffer "1". Wenn es sich um nichtdarstellbare Sonderzeichen handelt, dann soll ein "Punkt" ausgegeben werden. Also etwas in dieser Art:
"hugo1234....ABCD
Ich habe versucht die Character Darstellung wie folgt zu erzeugen:
Aber das scheitert,weil GetString einen ARRAY von Bytes erwartet und kein einzelnes Byte.
Any bright ideas, wie ich das lösen kann ?
LG
Peter