Werte im Nachhinein einem Array hinzufügen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von high152.

    Werte im Nachhinein einem Array hinzufügen

    Hi,

    ich "programmiere" erst seit kurzer Zeit mit VB2010, finde es aber sehr interessant und jetzt hänge ich an einem Problem und das schon seit Stunden.

    Ich habs geschafft, dass ich die Zeilen aus mehreren .txt-Dokumenten auslesen kann.
    Diese kann ich dann problemlos in eine ListBox setzen.

    Nun will ich die zum weiterarbeiten OHNE eine ListBox in einem Array abspeichern.

    Hier mal der Ausschnitt:

    Brainfuck-Quellcode

    1. Dim pfadueberordner As String = "C:\Users\...\Desktop\#temp\"
    2. Dim txtdateinamen() As String = System.IO.Directory.GetFiles(pfadueberordner)
    3. Dim filenr As Integer = 0
    4. Dim allelinks() As String
    5. Dim allelinksi As Integer = 0
    6. Do
    7. lstdateien.Items.Add(txtdateinamen(filenr))
    8. filenr += 1
    9. Loop Until filenr = txtdateinamen.Length
    10. For i As Integer = 0 To txtdateinamen.Length - 1
    11. filenr = 0
    12. Do
    13. Dim F As Integer = FreeFile()
    14. FileOpen(F, txtdateinamen(i), OpenMode.Binary)
    15. Dim links As String = Space(LOF(F))
    16. FileGet(F, links)
    17. Dim link() As String = Split(links, vbCrLf)
    18. lstlinks.Items.Add(link(filenr))
    19. -------------->allelinks(allelinksi) = link(filenr)
    20. allelinksi += 1
    21. filenr += 1
    22. FileClose(F)
    23. Loop Until filenr = txtdateinamen.Length
    24. Next i

    (filenr ist einfach eine Variable vom Anfang, da müsst ich mal einen aussagekräftigere hinzufügen)

    Ich will ein paar Links aus Textdateien auslesen und in einem Array "vereinen".
    Eigentlich genauso wie ich den Link zur Listbox hinzufüge(Zeile 21).

    Jedoch krieg ich den Fehler an der markierten Stelle:
    Die allelinks-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine Nullverweisausnahme auftreten.



    Vielen Dank schonmal im Voraus, wäre sehr nett wenn ihr mich über meinen Denkfehler aufklären könntet :)

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

    Nimm kein Array, nimm eine List(Of String).
    Die kannst Du per Add(NewElement) einfach erweitern.
    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!
    Da man mit der .ToString -Methode auch wieder etwas aus dem List(Of) auslesen kann
    und mit der .Count-Methode die Anzahl der Elemente bestimmen kann,

    ist es möglich ein Array "dynamisch" an die Elemente der List(Of) zu binden.

    VB.NET-Quellcode

    1. ReDim Array (List.count -1)
    2. for i = 0 to List.count -1
    3. Array(i) = List(i).tostring
    4. next


    So in etwa, aber nicht getestet.

    EDIT:
    Die genauen Bezeichnungen sind das natürlich nicht.
    Da müsstest du dann schon selber noch Namen für finden
    und ob die List(Of) auch exakt so angesprochen wird, da bin
    ich mir auch nicht 100% sicher. Einfach mal nach dem IKEA-Motto
    bearbeiten.

    EDIT2:
    Hab grad gesehen, dass es sogar direkt eine .ToArray-Methode dafür gibt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „schoeler.k“ ()