Hexdateien bearbeiten

Andre W

Grünschnabel
So das ist mein erster Post hier und ich hoffe das es das Thema nicht schonmal so gab. :rolleyes:

Also ich möchte ein Programm schreiben mit dem ich eine Datei so ähnlich öffnen kann wie in einem Hexeditor. Also das Programm soll die Datei einlesen und in eine Textbox schreiben.

Am Ende will ich die Datei wieder Speichern.

Zwischendurch will ich natürlich einiges an der Datei ändern, hoffe aber mal das ich das so hinbekomme. ;)


Vielleicht habt ihr auch eine bessere Idee. Also die Datei enthält mehrere Bilder (PNG und BMP) in HEX. Diese Bilder möchte ich im Endeffekt einfach nur gegen andere tauschen können. Dabei soll das Programm auch noch eine Art orschaufunktion haben, so das ich die Bilder in der Datei anzeigen kann.

EDIT: Hab gerade gemerkt das es da noch ein Problem gibt. Und zwar kann Visual Basic ja garnicht mit PNG Dateien umgehen. Bitte ich brauch eure Hilfe.

MfG
 
Zuletzt bearbeitet:
Das in der Datei mehrere Bilder drinne sind. Am besten ich hänge so ne Datei mal an. Da sind halt mehrere Bilder mit kompleten Header usw. drinne und davon will ich jetzt zB eine oder mehrere austauschen.
 

Anhänge

  • 26139attachment.zip
    97 KB · Aufrufe: 14
Das hat ja nichts mit Hex zu tun. Das Hexadezimalsystem ist nur eine bestimmte Möglichkeit um Zahlen darzustellen, so wie das Dezimalsystem.
Um die Bilder aus deiner Datei auslesen zu können, musst du mehr Informationen über den Aufbau der Datei haben, z.B. wo die Header anfangen usw.
 
Ja das weiß ich doch wo die Header anfangen. ;) Mein Problem ist das ich die Datei gerne so einlesen möchte, das ich in einem Textfeld die Hexwerte stehen habe.
 
Andre W hat gesagt.:
Mein Problem ist das ich die Datei gerne so einlesen möchte, das ich in einem Textfeld die Hexwerte stehen habe.

Mit der Ascb-Funktion kannst Du den "Zahlenwert" (Ascii-Code) eines Buchstaben in der Zeichenfolge als Integer erhalten.

Mit der Hex-Funktion kannst Du diesen Integer-Wert in die Hex-Darstellung überführen.

Hier mal ein Beispiel für eine kleine Zeichenkette die in der Textbox Text1 dargestellt werden soll:

Code:
dim i as long
dim Zeichenkette as string

Text1.text = ""

Zeichenkette = "abcd"

for i = 1 to len(zeichenkette) step 1
  Text1.text = Text1.text & hex( ascb( mid ( zeichenkette, i, 1 ) ) ) & space(1)
next i

Für das Beispiel gibt's von mir keine Funktionsgarantie, da ich's schnell aus dem Kopf entworfen habe.
 
Zuletzt bearbeitet:
So habs mal versucht. Das Problem ist nicht alle Zeichen in der Datei sind ASCII Zeichen. So kommts zu dem Problem das VB die Hexwerte 11, 01, 10, ... als so nen Viereck interpretiert und nach dem Umwandeln immer als 3F erkennt. :(
 
So falls es jemanden interessiert. Habs jetzt hinbekommen. Allerdings hab ichs jetzt in VB.NET gemacht, weil VB6 keine PNG Dateien unterstützt. Anwendung findet ihr im Anhang, eine Datei zum öffnen gibts oben. Vielleicht versteht man ja jetzt sogar was ich machen wollte. :D
Trotzdem danke für die Hilfe die Hinweise haben mir schon ein bisschen geholfen. :)
 

Anhänge

  • 26302attachment.zip
    12,1 KB · Aufrufe: 33
Zurück