Binär Dateien schreibe und wieder lesen

F_P_aus_K

Erfahrenes Mitglied
Hallo,
Ich möcht eine Datei erzeugen mit dem Inhalt zum Beispiel:

Parameter1: 11.00
Parameter2: 22.00
usw.

(nach jedem Satz eine neue Zeile)
und diese binär abspeichern.

später will ich diese datei wieder einlesen und genau so wieder darstellen können.

vielen Dank

Frank
 
Zuletzt bearbeitet:
Hi. eine Datei kannst du mit System.IO.File.Create oder CreateText erzeugen.
Da kriegst du ein FileStream zurück, dass du aber irgendwann wieder schließen solltest, auch wenn du nur die Datei erstellt hast.
schreiben und lesen kannst du über Read und Write wie ich weiß. Dabei kannst du als Parameter dein ByteArray übergeben.

Soll das eine Art ini sein?

Dann würd ich dir vielleicht empfehlen, mit Serialisierung zu arbeiten. Dann kannst du deine Variablen gleich u.A. in ein MemoryStream schreiben lassen und später über den Variablennamen wieder zurückholen. Die Sache wird dann auch in eine Binär-Datei geschrieben.

Gruß, Adrian
 
Hier hast du etwas Code :)

Code:
Private Sub Write()
        Dim fs As System.IO.FileStream = System.IO.File.Create("C:\Datei.txt")
        Dim param1 As String = "Wert1=50"
        Dim param2 As String = "Wert2=39"
        Dim output As String = param1 & vbCrLf & param2
        Dim oAsc As New System.Text.ASCIIEncoding

        fs.Write(oAsc.GetBytes(output), 0, output.Length)
        fs.Close()
    End Sub

    Private Sub Read()
        Dim fs As New System.IO.FileStream("C:\Datei.txt", IO.FileMode.Open)
        Dim input(fs.Length) As Byte

        Dim oAsc As New System.Text.ASCIIEncoding

        fs.Read(input, 0, fs.Length)
        fs.Close()

        Dim strInput As String = oAsc.GetString(input)

        Dim arrParam = strInput.Split(vbCrLf)

        MsgBox(arrParam(0))
        MsgBox(arrParam(1))
    End Sub
 
Ach ist doch nicht schlimm. Dann vergisst man es selber jedenfalls nicht sofort ;)
Und wenn man newbie ist, ist es schwierig, da weiß man manchmal erst gar nicht, wo man anfangen soll, zu suchen und das ist das problem. :google:

:)
 
viele dank fast zeitgleich hatte ich diese lösung:


schreiben:

Code:
        Dim text As String = "Hallo"
        Dim fs As New FileStream(strFileName2, FileMode.OpenOrCreate)
        Dim bf As New BinaryFormatter
        bf.Serialize(fs, text)
        fs.Close()

lesen:

Code:
        Dim Text As String
        Dim fs As New FileStream(strFileName2, FileMode.Open)
        Dim bf As New BinaryFormatter

        Text = CType(bf.Deserialize(fs), String)

        fs.Close()
        TextBox1.Text = Text

deine version scheint mir irgendwie besser zu sein.

irgendwie verwirrend 1000 Möglichkeiten zu haben um zu 1er Lösung zu kommen!


vielen Dank

Frank
 
Zurück