tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
461
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Despair Blue
    Despair Blue Despair Blue ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    42
    Hi,
    mich würde mal interessieren ob es möglich ist ganze Objekte abzuspeichern, sprich: z.B.: ein array mit 10 x 10 Werten versehen und er im Ganzen abzuspeichern um es dann wieder zu laden. Wer dem nich folgen könnte hier der code wie ich mir das denken würde:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Dim oSw As New IO.StreamWriter("C:\Array.dat")
            Dim Karte(10, 10) As String
            Dim n As Short
            Dim m As Short
            For n = 1 To 10
                For m = 1 To 10
                    Karte(n, m) = "1"
                Next
            Next
            oSw.Write(Karte)
            oSw.Close()
            Dim oSr As New IO.StringReader("C:\Array.dat")
            Karte = oSr.ReadToEnd()

    Bis zum Speichern funktioniert es noch, auch das Speichern geht noch, aber er will es dann nich öffnen und dem Array wieder übergeben und die gespeicherte Datei ist leer. gibt es da 'ne andere Möglichkeit?

    Würde mich über Hilfe freuen

    mfg ¥Ð
     

  2. #2
    Avatar von Despair Blue
    Despair Blue Despair Blue ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    42
    Ich beschreibe das Problem mal etwas anders: Ich hab ein Array mit 275 x 275 Feldern und jetzt das Problem das gesamte Array speichern zu müssen, nur wie? Ich hab keine Ahnung wie ich das auch nur im entferntesten anstellen sollte. Ich hoffe ihr könnt mir helfen.

    mfg ¥Ð
    Geändert von Despair Blue (12.04.05 um 06:54 Uhr)
     

  3. #3
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Propier mal noch ein oSW.Flush() vor dem Schliessen. Damit erzwingst Du, dass die Daten jetzt in die Datei geschrieben werden.
    Geändert von mage (12.04.05 um 09:43 Uhr)
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  4. #4
    Avatar von Despair Blue
    Despair Blue Despair Blue ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    42
    Leider geht's so auch nich, die Datei ist immernoch leer. Selbst wenn es gehen würde, weigert er sich immernoch über die read, readline oder readtoend methoden die datei einzulesen und dem array zuzuweisen, da er ja nen String liest und den nich in das 2-Dimensionale Array konvertieren kann (so sagt er...)
    Aber trotzdem danke.

    Wie würdet ihr denn 75625 Werte abspeichern und wieder laden? In VB 6.0 hätte ich es einfach als random gespeichert, geht das in .NET auch?
     

  5. #5
    Avatar von Despair Blue
    Despair Blue Despair Blue ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    42
    Ich hab es jetzt geschafft ein biliebig großes 1-Dimensionales Array zu speichern:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim Karte As New Map
            Dim n As Short
            For n = 1 To 275
                    Karte.Koordinaten(n, m) = "1"
            Next
            Dim obSer As New Xml.Serialization.XmlSerializer(GetType(Map))
            Dim obTw As New System.IO.FileStream("Karte.xml", IO.FileMode.Create)
            obSer.Serialize(obTw, Karte)
            obTw.Close()
            Me.Close()
        End Sub
    End Class
     
    Public Class Map
        Public Koordinaten(275) As String
        Sub New()
        End Sub
    End Class

    Sobald ich es aber 2-Dimensional mache:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim Karte As New Map
            Dim n As Short
            Dim m As Short
            For n = 1 To 275
                For m = 1 To 275
                    Karte.Koordinaten(n, m) = "1"
                Next
            Next
            Dim obSer As New Xml.Serialization.XmlSerializer(GetType(Map))
            Dim obTw As New System.IO.FileStream("Karte.xml", IO.FileMode.Create)
            obSer.Serialize(obTw, Karte)
            obTw.Close()
            Me.Close()
        End Sub
    End Class
     
    Public Class Map
        Public Koordinaten(275, 275) As String
        Sub New()
        End Sub
    End Class
    Erhalte ich eine Fehlermeldung:
    Code :
    1
    2
    3
    
    Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' ist in system.xml.dll aufgetreten.
     
    Zusätzliche Informationen: Fehler beim Reflektieren des Typs 'Test_Solution.Map'.

    Weiß Jemand was ich Falsch mache? Oder hat wer ne bessere Idee die Daten eines Arrays zu speichern?

    ich würde mich über Hilfe wirklich riesig freuen.

    mfg
     

Ähnliche Themen

  1. Arrays in Datei _binär_ speichern
    Von ComFreek im Forum PHP
    Antworten: 6
    Letzter Beitrag: 06.08.10, 15:32
  2. Objekte/Arrays Speichern
    Von Raven280438 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 24.06.10, 17:25
  3. Antworten: 3
    Letzter Beitrag: 30.07.09, 10:53
  4. XML Daten in mehrdimensionalen Arrays speichern
    Von bolshi im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 21.04.08, 19:44
  5. Arrays Speichern / Laden optimieren
    Von Cusco im Forum PHP
    Antworten: 8
    Letzter Beitrag: 07.11.07, 20:57