PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vb.net | array speichern problem



hackerkevin
08.05.2010, 22:08
Hat sich erledigt...
ich hatte vergessen das das array nicht mit 1 sondern 0 beginnt...

so sieht jetzt der aufruf und load aus:




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:

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:

''' <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:

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

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

krusty
09.05.2010, 22:49
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"),vbnewline)

is jetze ausm kopf =$$