Ergebnis 1 bis 2 von 2
  1. #1
    Der Herr von der Plantage Avatar von hackerkevin
    Registriert seit
    08.08.2007
    Beiträge
    177

    Standard vb.net | array speichern problem

    Hat sich erledigt...
    ich hatte vergessen das das array nicht mit 1 sondern 0 beginnt...

    so sieht jetzt der aufruf und load aus:



    Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim URL1 As String = mp_Technobase.URL
            Dim URL2 As String = mp_Metalonly.URL
            Dim URL3 As String = mp_Hardbase.URL
            Dim Name1 As String = btn_Technobase.Text
            Dim Name2 As String = btn_Metalonly.Text
            Dim Name3 As String = btn_Hardbase.Text
    
            Dim myArray(5) As String
            myArray(0) = URL1
            myArray(1) = URL2
            myArray(2) = URL3
            myArray(3) = Name1
            myArray(4) = Name2
            myArray(5) = Name3
    
            ArraySave(Application.StartupPath & "\variables.bin", myArray)
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim myArray() As String = Nothing
            If ArrayRead(Application.StartupPath & "\variables.bin", myArray) Then
    
                mp_Technobase.URL = myArray(0)
                mp_Metalonly.URL = myArray(1)
                mp_Technobase.URL = myArray(2)
                btn_Technobase.Text = myArray(3)
                btn_Metalonly.Text = myArray(4)
                btn_Hardbase.Text = myArray(5)
            End If
        End Sub






    hey ich hab ein problem mit einer array save function...

    ich kann die werte aus dem array abspeichern aber wen ich sie dan wieder ins programm lade kommen die falschen werte raus...

    was mache ich falsch? steuer ich das array falsch an?
    bitte um hilfe...
    hier der code:

    save:
    Code:
    Public Class Form1
    
        ''' <summary>
        ''' Speichert das angegebene Array binär in die angegebene Datei.
        ''' </summary>
        ''' <param name="Filename">Dateiname</param>
        ''' <param name="arr">Array, das gespeichert werden soll</param>
        Public Function ArraySave(ByVal Filename As String, _
          ByVal arr As Object) As Boolean
    
            Dim fs As FileStream = Nothing
            Dim Success As Boolean = False
    
            Try
                ' Datei zum Schreiben öffnen
                fs = New FileStream(Filename, FileMode.Create, FileAccess.Write)
    
                ' Array serialisieren und speichern
                Dim formatter As New BinaryFormatter()
                formatter.Serialize(fs, arr)
                Success = True
    
            Catch ex As Exception
            Finally
                ' Datei schließen
                If Not IsNothing(fs) Then fs.Close()
            End Try
    
            Return (Success)
        End Function

    load:
    Code:
     ''' <summary>
        ''' Liest ein zuvor gespeichertes Array aus der angegebenen Datei aus.
        ''' </summary>
        ''' <param name="Filename">Dateiname</param>
        ''' <param name="arr">Array, das die Daten enthalten soll.</param>
        Public Function ArrayRead(ByVal Filename As String, _
          ByRef arr As Object) As Boolean
    
            Dim Success As Boolean = False
    
            ' Prüfen, ob Datei existiert
            If IO.File.Exists(Filename) Then
                Dim fs As FileStream = Nothing
                Try
                    ' Datei zum Lesen öffnen
                    fs = New FileStream(Filename, FileMode.Open, FileAccess.Read)
    
                    ' Daten deserialiseren und dem Array zuweisen
                    Dim formatter As New BinaryFormatter()
                    arr = formatter.Deserialize(fs)
                    Success = True
    
                Catch ex As Exception
                Finally
                    ' Datei schließen
                    If Not IsNothing(fs) Then fs.Close()
                End Try
            End If
    
            Return (Success)
        End Function

    save aufruf:
    Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim URL1 As String = mp_Technobase.URL
            Dim URL2 As String = mp_Metalonly.URL
            Dim URL3 As String = mp_Hardbase.URL
            Dim Name1 As String = btn_Technobase.Text
            Dim Name2 As String = btn_Metalonly.Text
            Dim Name3 As String = btn_Hardbase.Text
    
            Dim myArray() As String = {URL1, URL2, URL3, Name1, Name2, Name3}
            ArraySave(Application.StartupPath & "\variables.bin", myArray)
        End Sub

    load aufruf
    Code:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim myArray() As String = Nothing
            If ArrayRead(Application.StartupPath & "\variables.bin", myArray) Then
    
                mp_Technobase.URL = myArray(1)
                mp_Metalonly.URL = myArray(2)
                mp_Technobase.URL = myArray(3)
                btn_Technobase.Text = myArray(4)
                btn_Metalonly.Text = myArray(5)
                btn_Hardbase.Text = myArray(6)
            End If
        End Sub

    mfg hackerkevin
    Geändert von hackerkevin (09.05.2010 um 18:45 Uhr)

  2. #2
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    was zum teufel soll das ganze machen ?
    du willst alle elemente eines arrays in einer datei speichern ?
    das geht viel einfacher, als mit deinen 3 funktionen.
    das zum speichern:
    dim speicher
    for each s as string in myarray
    speicher &= s & vbnewline
    next
    io.file.writealltext("C:\myarray.txt",speicher)

    das zum auslesen:
    myarray = split(io.file.readalltext("C:\myarray.txt"),vbnewl ine)

    is jetze ausm kopf =$$

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •