Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

HEX-Code aus BIN-File einlesen

HEX-Code aus BIN-File einlesen
09.05.2014 22:41:30
Helge
Hallo,
ich bin ganz neu hier und habe, soweit ich das anhand anderer Fragen und Antworten erkennen kann, doch recht wenig Ahnung von Excel. Daher wende ich mich nach einigen gescheiterten Versuchen an euch.
Ich möchte mittels Schaltfläche den Hexadezimalen Inhalt einer .bin - Datei in das Feld A1 einlesen lassen. Die Dateien sind immer .bin und können eine Größe von 128-2048 Byte haben. Momentan schaue ich mir diese Dateien in einem separaten Hex-Editor an und füge diesen Inhalt dann manuell in das Feld ein.
Die Auswertung der Inhalte ist schon auf dieses Konzept abgestimmt (bin ich noch bei), daher wäre ein Aufteilen auf verschiedene Zellen jetzt nachteilig.
Vielleicht kann mir ja hier jemand ein paar Tips geben.
Achso... ich habe leider NULL Ahnung von VBA, aber ich vermute mal, dass es ohne Makros nicht zu realisieren ist, oder?
Schonmal vielen Dank im Voraus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: HEX-Code aus BIN-File einlesen
10.05.2014 09:53:09
fcs
Hallo Helge,
hier ein Makro das den Inhalt einer Text-Datei in eine Zelle schreibt.
Evtl. funktioniert das auch mit deiner BIN-Datei. Den Wert der Konstanten intFormat musst du evtl. auf 0 ändern.
Gruß
Franz
Sub GetBinData_02()
Dim varAuswahl As Variant
Dim ZielZelle As Range
Const intIOmode As Integer = 1    '1 = ForReading, 2 = ForWriting, 8 = ForAppending
Const bolCreate As Boolean = True 'bei Writing oder Appending wird ggf. eine neue Datei  _
angelegt
Const intFormat As Integer = -1   '0 = ASCII, -1 = Unicode, -2 = Systemdefault
Dim FSO, TextStream
Set ZielZelle = ActiveSheet.Range("A1")
varAuswahl = Application.GetOpenFilename(Filefilter:="binäre Datei (*.bin),*.bin", _
Title:="Bitte binäre Datei auswählen, die in A1 eingefügt werden soll")
If Not varAuswahl = False Then
Set FSO = CreateObject("Scripting.FileSystemObject")
'TextStream-Objekt: object.OpenTextFile(filename[, iomode[, create[, format]]])
Set TextStream = FSO.OpenTextFile(varAuswahl, intIOmode, bolCreate, intFormat)
ZielZelle.Value = "'" & TextStream.Readall 'Hochkomma, damit Zahlen/Datum nicht _
konvertiert werden
TextStream.Close
Set FSO = Nothing
End If
End Sub

Anzeige
AW: HEX-Code aus BIN-File einlesen
10.05.2014 18:48:16
Helge
Hallo Franz,
funktioniert leider nicht...
Den Dateninhalt als HEX bekomme ich überhaupt nicht dargestellt und wenn ich auf ASCII umstelle, dann schreibt er nur ein Hochkomma und nachfolgend nur bis dahin, wo im ASCII ein Leerwert erkannt wird (Bsp.: 00 o. 8D etc.). Der Rest wird einfach abgeschnitten, aber wie gesagt, ich bekomme ja scho gar keinen Hex-Code angezeigt. Von daher ist das andere ja nicht so wild.

AW: HEX-Code aus BIN-File einlesen
11.05.2014 07:46:46
ChristianM
Hallo Helge,
so zB. Dateiname und Tabellenblatt musst du entsprechend anpassen.
Option Explicit
Sub ReadBinaryFile()
Dim strFile As String
Dim strRes As String
Dim intFile As Integer
Dim bytTmp As Byte
strFile = "D:\test.bin"
intFile = FreeFile
Open strFile For Binary Access Read As #intFile
Do While Not EOF(intFile)
Get intFile, , bytTmp
strRes = strRes & Hex(bytTmp) & " "
Loop
Close #intFile
ThisWorkbook.Sheets("Tabelle1").Cells(1, 1) = Trim(strRes)
End Sub
Gruß
Christian

Anzeige
AW: HEX-Code aus BIN-File einlesen
11.05.2014 22:29:36
Helge
Hallo Christian,
vielen Dank erstmal !!! ES FUNKTIONIERT !!!
bis auf eine "Kleinigkeit" ...
Sofern ein 2-Byte-Wort mit einer 0 beginnt, wird diese weggelassen (Bsp. 00=0, 07=7, 0F=F).
Das ist schlecht, da ich mich bei der Auswertung der Datei auf die Position eines Bytes beziehe, im Stil von "=TEIL(A1;458;32)"
Gibt es da noch eine Möglichkeit der Optimierung ?
MfG
Helge

AW: HEX-Code aus BIN-File einlesen
11.05.2014 22:30:06
Helge
Hallo Christian,
vielen Dank erstmal !!! ES FUNKTIONIERT !!!
bis auf eine "Kleinigkeit" ...
Sofern ein 2-Byte-Wort mit einer 0 beginnt, wird diese weggelassen (Bsp. 00=0, 07=7, 0F=F).
Das ist schlecht, da ich mich bei der Auswertung der Datei auf die Position eines Bytes beziehe, im Stil von "=TEIL(A1;458;32)"
Gibt es da noch eine Möglichkeit der Optimierung ?
MfG
Helge

Anzeige
AW: HEX-Code aus BIN-File einlesen
12.05.2014 09:07:47
ChristianM
meinst du so?

Option Explicit
Sub ReadBinaryFile()
Dim strFile As String
Dim strRes As String
Dim strTmp As String
Dim intFile As Integer
Dim bytTmp As Byte
strFile = "D:\test.bin"
intFile = FreeFile
Open strFile For Binary Access Read As #intFile
Do While Not EOF(intFile)
Get intFile, , bytTmp
strTmp = CStr(Hex(bytTmp))
If Len(strTmp) 
Gruß
Christian

AW: HEX-Code aus BIN-File einlesen
14.05.2014 19:15:58
Helge
Ja, genau !
Vielen Dank Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige