Datei in Array laden und Array Inhalt zurück als Datei

  • VB.NET

    Datei in Array laden und Array Inhalt zurück als Datei

    Hi,

    Ich bin gerade am versuchen eine Binär Datei in ein Array zu laden und den Inhalt des Arrays wieder zurück in eine datei Speichern. Ich habe das zumindest hinbekommen das wenn ich eine datei lade, das die datei die ich speicher schonmal die richtige dateigröße hat ABER das problem ist nur, das in der neuen Datei keine Daten enthält. Also ich hänge quasi an der stelle wo die Daten in den Array geladen werden soll.


    Momentan sieht mein Code folgendermaßen aus.

    Datei Einlesen:

    VB.NET-Quellcode

    1. Dim OFD As New OpenFileDialog
    2. Dim Data() As Byte
    3. Dim FileNameIn As String
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. OFD.Filter = "Alle Dateien (*.*)|*.*"
    6. If OFD.ShowDialog = DialogResult.OK Then
    7. Dim FS As New IO.FileStream(OFD.FileName, IO.FileMode.Open)
    8. Dim BR As New IO.BinaryReader(FS)
    9. ' ByteArray dimensionieren
    10. ReDim Data(FS.Length - 1)
    11. 'HIER KOMME ICH NICHT WEITER <-------------
    12. FS.Close()
    13. BR.Close()
    14. Else
    15. End If
    16. End Sub





    Datei Schreiben (Inhalt vom Array):

    VB.NET-Quellcode

    1. Dim FS As New FileStream("C:\NEUEDATEI.bla", IO.FileMode.Create, FileAccess.Write)
    2. Dim BW As New BinaryWriter(FS)
    3. BW.Write(Data)
    4. FS.Close()
    5. BW.Close()
    6. End Sub


    Wie gesagt, die neue Datei hat die gleiche größe wie das Original nur ohne Inhalt vom Original da ich die Original Datei nicht verändern möchte.

    Gruß Micha



    Lösung:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. OFD.Filter = "Binärdatei (*.bin)|*.bin"
    3. If OFD.ShowDialog = DialogResult.OK Then
    4. Dim FS As New IO.FileStream(OFD.FileName, IO.FileMode.Open)
    5. Dim BR As New IO.BinaryReader(FS)
    6. ' ByteArray dimensionieren
    7. ReDim Data(FS.Length - 1)
    8. Data = BR.ReadBytes(FS.Length) '<---------- So funktionierts :)
    9. FS.Close()
    10. BR.Close()
    11. Else
    12. End If
    13. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MichaSDL0403“ ()