Listbox in txt schreiben

P

puuhbaer

Hey Leute...
Ich habe hier im Forum ein Codesnippet gefunden, mit dem ich das Ergebniss der Listbox in einer Textdatei speichern kann. Okay Code übernommen zum testen und siehe da, es geht nicht. Es geht um folgenden Code:

Code:
Imports System
Imports System.IO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim pc As System.Diagnostics.Process
        For Each pc In System.Diagnostics.Process.GetProcesses()
            ListBox1.Items.Add(pc.ProcessName)
        Next


        Dim csvFile As FileStream
        Dim oWriter As StreamWriter
        Dim ExportName As String = "Ausgabefile.txt"
        Dim ImportZeilen As Decimal
        Dim W As Decimal

        ImportZeilen = ListBox1.Items.Count

        csvFile = New FileStream(ExportName, FileMode.OpenOrCreate, FileAccess.Write)

        oWriter = New StreamWriter(csvFile)

        For W = 0 To ImportZeilen
            oWriter.WriteLine(ListBox1.Items(W))
        Next



        oWriter.Close()
        oWriter = Nothing
        csvFile = Nothing
    End Sub
End Class

In der Zeile: "oWriter.WriteLine(ListBox1.Items(W))" gibt er den folgenden Fehler aus: InvalidArgument=Value mit dem Wert 42 ist für index ungültig. Parametername: index

Wo hat vb.net das Problem?
 
Es muss heißen:

Code:
        For W = 0 To ImportZeilen-1
            oWriter.WriteLine(ListBox1.Items(W))
        Next

Schau mal in den Tooltip... da steht bestimmt "null-basierter Index". Das heißt automatisch, dass es zwar so viele Elemente gibt, wie "Count" dir ausspuckt, allerdings diese dann bei dem "Items" vonn null an gezählt werden. Das wiederum heißt, das letzte Element liegt bei "count-1". :rolleyes: Bisschen kompliziert klingt das, ist es aber nicht.

Kannst du nicht auch "For Each" verwenden? Das würde ich für solche Sachen immer bevorzugen:

Code:
        For Each eintrag in ListBox1.Items
            oWriter.WriteLine(eintrag)
        Next
 
Okay war dann doch etwas sehr dummes *.*

Aber jetzt hab ich nen anderes Problem. Ich wollte das auf meinem Laptop testen, wo kein Framework etc drauf ist. Und was passiert: .NET Framework Initialization Error
Sprich ich kann es nicht starten. Und nu? Muss jetzt auf jedem PC das Framework drauf sein? Weil wenn ja ist .Net die falsche Sprache für mich...
 
.NET ist keine Sprache sondern eine Technologie.
Vergleichen kannst du da ganze mit Java (auch wenn Java auch der Name der Sprache ist). Sowohl für Java als auch für .NET muss zum Betreib der entsprechenden Programme das Framework mit der Runtime installiert werden.

Gleiches gilt übrigens auch für Autos. Mit denen kann auch nur da fahren, wo es Straßen gibt.
 
Zurück