Wie speichere ich eine ArrayList in ein File

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von TVX.

    Wie speichere ich eine ArrayList in ein File

    Hallo zusammen

    ich habe ein kleines Problem mit einer "ArrayList" wo ich nicht weiterkomme.
    Das komische ist, daß es schon mal funktioniert hat.

    Problem
    ich habe eine ArrayList die ich nun gerne in ein File abspeichern möchte.
    Wenn ich unter Projekte das Zeilframwork auf 3.5 einstelle dann funktioniert es.
    Nun möchte(muß) ich aber gerne das Zielframework in diesem Programm auf 4.0 umstellen.

    Quellcode

    1. Public Sub SaveArrayListIntoFile(ByVal array As ArrayList, ByVal fileName As String)
    2. ' IO.File.WriteAllLines(fileName, array.ToArray(GetType(String))) 'Version Framework 3.5
    3. IO.File.WriteAllLines(fileName, array) 'Version Framework 4
    4. End Sub

    nun bekomme ich aber die Fehlermeldung
    ____________________________________
    Eine nicht behandelte Ausnahme des Typs "System.InvalidCastException" ist in BifCheck.exe aufgetreten.
    Zusätzliche Informationen: Das Objekt des Typs "System.Collections.ArrayList" kann nicht in Typ "System.Collections.Generic.IEnumerable`1[System.String]" umgewandelt werden.
    ___________________________________________
    Was die Fehlermeldung bedeutet versteh ich ja eigentlich, aber mich wundert es einfach nur, warum es schon mal funktioniert hat.
    Das war aber noch zu VB2010 zeiten.
    Muß aber sagen, das ich es seit der Umstellung auf VB2012 noch nicht benötigt habe.
    Kann mir vielleicht jemand sagen warum es nicht mehr geht bzw. wie ich nun eine ArrayList am besten in ein File abspeichere.
    Wie berwerkstelligt ihr das.!?
    Oder liegt das an einer speziellen Einstellung.
    Für mich ist das ein grundsätzliches Problem, da ich diese "Funktion" in mehreren Programmen verwende.

    Gruß
    herrm_no ?(
    Wenn es sich bei dem Array um ein String-Array handelt, funktioniert es.
    Jedes andere Array musst Du zunächst in einen String bzw. in ein Stringarray konvertieren.
    Oder Du nutzt eine DataTable und speicherst diese als XML.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hey
    danke für die Antwort.
    Mir ist der Fehler schon klar steht ja in der Fehlermeldung
    Mir geht es mehr darum zu erfahren
    1) warum es schon funktioniert hat und nun nicht mehr?!!
    2) welchen weg ihr benutzt um eine ArrayList in ein File zu speichern

    Meine Lösung ist

    VB.NET-Quellcode

    1. Public Sub SaveArrayListIntoFile(ByVal array As ArrayList, ByVal fileName As String)
    2. '# Schreiben von der ArrayList in ein File
    3. Dim myarray As String()
    4. myarray = CType(array.ToArray(GetType(String)), String())
    5. ' IO.File.WriteAllLines(fileName, array.ToArray(GetType(String))) 'Version Framework 3.5
    6. IO.File.WriteAllLines(fileName, myarray) 'Version Framework 4
    7. End Sub


    Gruß
    herrm_no

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „herrm_no“ ()

    herrm_no schrieb:

    welchen weg ihr benutzt um eine ArrayList in ein File zu speichern
    Wir verwenden keine ArrayList.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @TVX: Wie war das mit dem Einzeiler?

    VB.NET-Quellcode

    1. IO.File.WriteAllText("C:\DATEN\Save1.cfg", TextBox1.Text)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!