Listbox - je Zeile eine Datei

  • VB.NET

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

    Listbox - je Zeile eine Datei

    Hallo Zusammen,

    ich lade Dateien aus einem Ordner in eine Listbox.
    Zu jeder Datei möchte ich nun eine cfg-Datei erstellen.
    Momentan wird jede Zeile händisch mit .selecteditem in eine cfg gespeichert.
    Wie müsste denn der Code ergänzt werden, damit automatisch für jede Zeile eine Datei geschrieben wird und ich nicht immer jede Zeile einzeln markieren und speichern muss.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim path As String = TextBox2.Text & "\" & ListBox1.SelectedItem & ".cfg"
    3. Dim fs As FileStream = File.Create(path)
    4. Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextBox1.Text & ListBox1.SelectedItem)
    5. fs.Write(info, 0, info.Length)
    6. fs.Close()
    7. End Sub


    MfG Madde
    Du müsstest per Schleife durch die ListBox iterieren und deinen bereits vorhandenen Code ausführen.

    Z.b. So:
    Spoiler anzeigen
    ungetestet aus dem Kopf(!)

    VB.NET-Quellcode

    1. for i as integer = 0 to DeineListBoxItems.Count -1
    2. 'Dein Code hier
    3. Next for

    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    exc-jdbi schrieb:

    Dazu müssten wir auch wissen, wie du die "Dateien" in die Listbox einbezogen hast. Per FileInfo oder einfach per String.


    Die Daten werden per String reingeladen.

    EDIT: Habs hinbekommen, Danke

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. For i = 0 To ListBox1.Items.Count - 1
    3. ListBox1.SelectedItems.Add(ListBox1.Items.Item(i))
    4. Dim path As String = TextBox2.Text & "\" & ListBox1.SelectedItem & ".cfg"
    5. ' Erstelle oder überschreibe Datei
    6. Dim fs As FileStream = File.Create(path)
    7. ' Schreibe Text in die Datei
    8. Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextBox1.Text & ListBox1.SelectedItem)
    9. fs.Write(info, 0, info.Length)
    10. fs.Close()
    11. Next
    12. End Sub


    MfG Madde

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

    Madde schrieb:

    VB.NET-Quellcode

    1. ListBox1.SelectedItems.Add(ListBox1.Items.Item(i))
    Was soll das?
    Wenn, dann erstell doch Deine Dateien in dem Moment, wo Du die ListBox befüllst, da hast Du alle erforderlichen Informationen bereits vorliegen.
    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!