gespeicherte Listboxeinträge löschen

Lodas

Grünschnabel
Hallo zusammen,
bin das erste mal auf dieser Seite und hoffe hier ein wenig Hilfe zubekommen.

Mein Problem ist folgendes:

Ich hab ne Listbox, die mir den Inhalt von "data2.dat" anzeigt. Nun würde ich gerne einen bestimmten Namen per Click auswählen und diesen dann per click auf den Commando Button "löschen" löschen. Nun ich bekomme es ja auch hin den Eintrag aus der Listbox verschwinden zu lassen, aber bei Neustart des Programms ist der Eintrag wieder da.
Irgendwie muss ich wohl die Listbox nach dem Löschen des Eintrages Neu Speichern. Aber wie? Ich bekomms einfach nicht hin.
Für ein paar Tipps wäre ich sehr Dankbar.

Gruß Lodas
 
Hallo Lodas,

wie schreibst du die Daten in die Listbox? Hast du sie per Datasource und Datamember an eine datenbank gehängt oder füllst du sie mit .Additem?

Wenn du sie mit .Additem hineinschreibst, kanst du die Daten mit .clear wieder löschen.

Grüße
Ulf
 
Hallo Ulf_K,
ich schreibe die Daten mit .additem in die Listbox.
Ich werde es mal mit . clear versuchen. Bis jetzt hab ich es nur mit .removeitem
versucht und da wurden sie halt nicht aus dem Speicher gelöscht.
Wenn ich es jedoch mit .clear mache, dann werden doch alle Daten in der Listbox gelöscht und das will ich ja gerade nicht, sondern ich will nur den einen ausgewählten Eintrag löschen. Alle anderen sollen erhalten bleiben.
Ich versuche es einfach mal.
Danke für deine Hilfe.

Gruß Loda
 
Hi!
Nun würde ich gerne einen bestimmten Namen per Click auswählen und diesen dann per click auf den Commando Button "löschen" löschen
Anscheinend möchtest du ja nicht den ganzen Inhalt löschen....

Code:
'Wenn Liste leer...
If lstAusgabe.ListCount = 0 Then
'...meldung machen
meldung = MsgBox("Liste ist leer!", vbOKOnly, "Liste enthält keine Einträge")
    Else
    'Löschen bestätigen
    meldung = MsgBox("Ausgewählten Eintrag löschen?", vbYesNo, "Bestätigen")
        'wenn JA gewählt
        If meldung = vbYes Then
            'Item löschen
            lstAusgabe.RemoveItem (lstAusgabe.ListIndex)
        Else
            'Ansonsten beenden
            Exit Sub
        End If
End If

So zum Beispiel....
 
Hi daDom,

danke für deine Antwort.
Leider hat noch niemand mein Problem so richtig erkannt, vielleicht hab ich mich falsch ausgedrückt. Also nochmal:
Ich habe zwei Formulare. Im ersten kann ich Namen usw. über Textboxen eingeben und diese in einer Datei speichern. Im zweiten Formular habe ich eine Listbox, die mir die gespeicherten Einträge anzeigt. Nun würde ich gerne auf einen dieser vielen Einträge klicken (ihn also auswählen) und danach möchte ich, dass dieser Eine Eintrag per Click auf den "Löschen" Button aus dem Speicher verschwindet und zwar for good.
Ich bekomme das aber nicht hin. Was ich hinbekomme ist, dass der Eintrag aus der Listbox verschwindet, aber nicht aus der gespeicherten Datei, denn wenn ich das Programm Neustrate, dann ist der Eintrag wieder da.

Hoffentlich hab ich mich nun etwas konkreter ausgedrückt, oder immer noch nicht?
Trotzdem Danke für dein Versuch.
Wahrscheinlich ist das alles voll easy und ich stehe mal wieder auf dem Schlauch.

Gruß Loda
 
Habe den Code mal ergänzt: ;)

Code:
Private Sub Form_Load()
' Datei öffnen
Open "deinedatei.dat" For Input As #2
' Solange Datei2 nicht zu Ende
        Do While Not EOF(2)
            Line Input #2, zeile
            'Dateiinhalte der Listbox hinzufügen
            lstAusgabe.AddItem (zeile)
        Loop
' Datei schliessen
Close #2
End Sub

Private Sub lstAusgabe_Click()
'Wenn Liste leer...
If lstAusgabe.ListCount = 0 Then
'...meldung machen
meldung = MsgBox("Liste ist leer!", vbOKOnly, "Liste enthält keine Einträge")
    Else
    'Löschen bestätigen
    meldung = MsgBox("Ausgewählten Eintrag löschen?", vbYesNo, "Bestätigen")
        'wenn JA gewählt
        If meldung = vbYes Then
            'Item löschen
            lstAusgabe.RemoveItem (lstAusgabe.ListIndex)
        Else
            'Ansonsten beenden
            Exit Sub
        End If
End If
    'Datei öffnen ggf. erstellen
    Open "deinedatei.dat" For Output As #3
        ' Von zeile Null bis Ende minus 1 (weil: zeile 0 - 4 = sind 5Zeilen)
        For I = 0 To lstAusgabe.ListCount - 1
        ' lstAusgabe-Werte in Datei speichern
        Print #3, lstAusgabe.List(I)
        ' Schleife wiederholen bis keine Listeneinträge mehr
        Next I
    'Datei schliessen
    Close #3
End Sub
 
Hi daDom,
ich weiß gar nicht, wie ich dir danken kann. Ich sitzte echt schon ewig an diesem Problem und nun ist es weg. Es funktioniert!
Einfach klasse. Echt vielen, vielen Dank.

Schönen Abend noch und auch ein schönes Wochenende

Gruß Loda und Danke, danke und nochmlas danke
 

Neue Beiträge

Zurück