online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon SchalUndRauch vom 25.09.2020, 17:08 Options

Einzelne Bytes aus Fremddatei in Excel einlesen

Hallo,
ich habe folgendes Problem:
Ich möchte einzelne Bytes aus einer Datei in Excel einlesen und statistisch auswerten.

Das funktioniert auch soweit mit folgendem VBA-Script:

>Sub dateiimport()
>Dim lngI As Long 'Zähler für Schleife
>lngMax = 16
>dateinummer = FreeFile 'freie Dateinummer ermitteln
>TextSource = Application.GetOpenFilename 'Dateinamen und Pfad ermitteln
>If TextSource = False Then Exit Sub
>Open TextSource For Input As #dateinummer 'Datei lesend öffnen
> Line Input #dateinummer, zeile 'auslesen einer Zeile in die Variable zeile
>For lngI = 1 To lngMax
> Einzelbyte = Mid(zeile, lngI, 1) 'Einzelbyte auslesen
> ActiveSheet.Cells(lngI, 1).Value = Einzelbyte 'Einzelbyte in Zelle eintragen
>Next lngI
>Close #dateinummer 'Datei schließen

>End Sub

In der Datenquelle (es handelt sich um ein SMF) habe ich folgende Bytes als Hexwerte in einer anderen Datei stehen:
4D 54 68 64 00 00 00 06 00 00 00 01 00 60 4D 54
das Problem ist nur das mir die Nullbytes nicht ausgelesen und nicht nur das sondern auch unterschlagen werden der Output sieht so aus:
4D 54 68 64 06 01 60 4D 54

Wer kann mir helfen?


Antwort schreiben

Antwort 1 von BigF vom 25.09.2020, 18:44 Options

hi SchalUndRauch
wie wärs, wenn du den ASCII-Code auslesen lässt ?

> Einzelbyte = Asc(Mid(zeile, lngI, 1)) 'Einzelbyte auslesen

Gruss BigF

Antwort 2 von SchalundRauch vom 25.09.2020, 19:33 Options

Hi BigF,
das hilft mir nicht weiter.
Denn dann bekomme ich nur die ausgelesenen die Hex-Werte als Dez-Werte und mit den nicht ausgelesenen bin ich keinen Schritt weiter.
Schöne Grüße

Antwort 3 von lorf55 vom 26.09.2020, 09:56 Options

Hallo SchalUndRauch,
ich könnte mir vorstellen, dass die MID-Funktion das Nullzeichen einfach als Kennung für das Stringende ansieht und deshalb nichts zu sehen ist.
Wenn du Byte für Byte lesen möchtest, solltest du das direkt mit Input (oder auch vielleicht auch InputB) machen:
Dim Zeichen1
Open TextSource  For Input As #1    ' Datei öffnen.
Do While Not EOF(1)                           ' Schleife bis Dateiende.
    Zeichen1 = Input(1, #1)                   ' Ein Zeichen lesen.
    ActiveSheet.Cells(lngI, 1).Value = Zeichen1    'Einzelbyte in Zelle eintragen
Loop
Close #1    ' Datei schließen.


Gruß
lorf

Antwort 4 von lorf55 vom 26.09.2020, 09:58 Options

Verschenke ein "auch" solange der Vorrat reicht. :-)

Antwort 5 von SchalUndRauch vom 26.09.2020, 14:23 Options

Hallo lorf55,
aber "auch" (danke dafür) das hilft mir nicht weiter, hatte ich vorher schon ausprobiert. Kann dir aber im Gegenzug ein "else" anbieten . :-}
Wo sind denn hier die VB-Profis?
Schöne Grüße

Antwort 6 von lorf55 vom 26.09.2020, 22:57 Options

Stimmt! Die Hilfe lügt! Input liest erst ab dem 1.Byte, das kein 00-Byte ist, wenn man
as INPUT
angibt. Wenn man aber statt dessen
as Binary
nimmt, klappts auch mit den Nullen (zumindest bei mir; jetzt habe ich doch mal getestet):
Sub dateiimport2()
Dim Zeichen1
Dim lngI As Long 'Zähler für Schleife
lngMax = 16
dateinummer = FreeFile 'freie Dateinummer ermitteln
TextSource = Application.GetOpenFilename 'Dateinamen und Pfad ermitteln
Open TextSource For Binary As #1     ' Datei öffnen.
lngI = 0
Do While (lngI < lngMax) And Not EOF(1)  ' Schleifenanfang
    lngI = lngI + 1
    Zeichen1 = Input(1, #1)                   ' Ein Zeichen lesen.
    ActiveSheet.Cells(lngI, 1).Value = Hex(Asc(Zeichen1))    'Einzelbyte in Zelle eintragen
Loop         ' Schleifenende
Close #1    ' Datei schließen.
End Sub

Naja bin nicht so der VB-Profi, aber vielleicht reichts ja für dich.

Gruß
lorf

Antwort 7 von SchalUndRauch vom 27.09.2020, 16:45 Options

Hi lorf55,
ok die Profis waren schon da :-), vielen Dank für die Hilfe, funktioniert super.
Schöne Grüße

Ähnliche Themen

Aus Mehren Excel- Dateien Daten in eine Excel Datei einlesen
Jona1982  26.07.2007 - 1074 Hits - 13 Antworten

Einzelne Zellen in Excel sperren
micico  09.07.2007 - 337 Hits - 2 Antworten

Zellwerte und nicht Formeln aus anderen Dateien einlesen
Johanna153  26.07.2007 - 22 Hits - 2 Antworten

Dateiname einer txt.-Datei in EXCEL einlesen
stoneart  14.11.2007 - 121 Hits - 16 Antworten

Excel-Daten aus etlichen Dateien einlesen
Albert204  04.12.2007 - 232 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026