ein einzelnes Byte aus einem Byte array auslesen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    ein einzelnes Byte aus einem Byte array auslesen

    Hallo zusammen,

    ich hab eigentlich ein ganz einfaches Problem , aber ich stehe irgendwie auf dem Schlauch.

    ich lese eine Datei in ein Byte array ein und möchte die Bytes einzeln aus diesem Array auslesen können

    weenn ich jetzt z.b.auslese mit

    Dim data() as Byte = File.ReadAllBytes(filename)

    wäre ich davon ausgegangen das mir folgende funktion die bytes 3 und 4 ausliest :

    Dim i as long
    for i = 3 to 4
    msgbox data(i)
    next i

    aber fehlanzeige, so klappt das ja mal garnicht. Wie wäre die richtige vorgehensweise dazu ?

    ergänzend wäre vielleicht noch zu sagen das ich die Bytes wirklich einzeln (8Bit) auslesen muss und die im Netz verfügbaren Sources für 2 Bytes (16Bit) auslesen mir hier leider nicht weitergeholfen haben.

    Vielen Dank im Vorraus
    Ahoi,

    was heißt denn "es klappt nicht"?
    Könnte es vielleicht sein, dass die MessageBox probleme damit hat byte auszugeben?
    Schau mal hier rein, vielleicht hilft dir das schon.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Okay , ist für aussenstehende dann logischerweise schwer nachvollziehbar, klar kann ich verstehen.

    Die gesamt Funktion lautet

    Public Function parsefile(fn As String)
    Dim i As Short
    Dim bytes As Byte() = My.Computer.FileSystem.ReadAllBytes(fn) REM fn = filename
    For i = 1 To 10
    MsgBox bytes(i)
    Next i
    Dim flenhex As String
    flenhex = Microsoft.VisualBasic.Left(Decimal2Hex(bytes.Length - 2), 4).PadLeft(4, "0"c)
    Label2.Text = flenhex
    End Function


    ich möchte per msgbox den hexwert als string oder das zeichen was aus dem hexwert des (der Bytes) resultiert ausgeben.

    wenn ich das aber so kompilieren möchte sagt mir das errorlog :

    Method arguments must be enclosed in parentheses.

    Hat sich aber mittlerweile erledigt da ich dann genau das dann auch gemacht hab. War wohl gestern etwas später geworden und ich muss mich mit der anderen Syntax noch anfreunden. Ich bin wohl noch zu sehr vb6 geschädigt. Danke trotzdem

    und damit jetzt auch hier die Lösung steht,

    MsgBox(bytes(i))

    wenn da also im errorlog steht Du sollst es in Klammern setzten, dann mach das auch :)

    lastyle schrieb:

    vb6
    Ja, da lässt sich einiges machen:

    VB.NET-Quellcode

    1. Public Sub parsefile(filename As String)
    2. Dim bytes As Byte() = System.IO.File.ReadAllBytes(filename)
    3. For i = 0 To 9
    4. MessageBox.Show(bytes(i).ToString("X2"))
    5. Next i
    6. Label2.Text = (bytes.Length - 2).ToString("X4")
    7. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!