Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.04.2013, 00:00

C# ListView Item löschen und in einer Textdatei speichern

Guten Abend,
ich möchte gerne einen ausgwählten Bereich eines ListViews löschen.
Das klappt soweit auch nur möchte ich das was gelöscht wird auch in einer Textdatei löschen.
So lösche ich das von dem ListView nur weiß ich nicht wie ich es dann auch in der Textdatei lösche.

C#-Quelltext

1
            foreach (System.Windows.Forms.ListViewItem eachItem in this.listView.SelectedItems)            {                this.listView.Items.Remove(eachItem);            }


Die Textdatei sieht so aus:

Wort1;Wort2;Wort3;Wort4;

Wenn ich es einlöse splitte ich es dann einfach.

Habe bis jetzt bei google nur sowas gefunden:

C#-Quelltext

1
 List<string> lines = File.ReadAllLines(path").ToList(); foreach (ListViewItem selectedItem in this.listView.SelectedItems)  {                lines.Remove(selectedItem.Text);            }


Nur da passiert nichts.
Der findet da nur die Zeilen heraus und "Wort1", löscht aber nichts.

Danke schon mal für die hilfe.

mfg


2

06.04.2013, 00:52

Dieser Code Ausschnitt, bei dem du meinst, dass er aus der Datei die entsprechenden Zeilen rauslöscht, macht nichts anderes, als den Inhalt in der Datei in eine Liste zu speichern und aus dieser Liste dann die Zeilen zu löschen. Das hättest du eigentlich erkennen können, wenn du die 3 Zeilen mal durchgelesen hättest.

Du kannst aus einer Datei nicht einfach so zwischendrin etwas löschen. Du musst die Datei neuschreiben.
Du durchläufst einfach die Listview Einträge und schreibst jeden Eintrag in die Datei, gefolgt von einem ";".
Wie das Schreiben in Dateien funktioniert solltest du selber wissen/herausfinden können.

3

06.04.2013, 01:01



Du kannst aus einer Datei nicht einfach so zwischendrin etwas löschen. Du musst die Datei neuschreiben.
Du durchläufst einfach die Listview Einträge und schreibst jeden Eintrag in die Datei, gefolgt von einem ";".
Wie das Schreiben in Dateien funktioniert solltest du selber wissen/herausfinden können.
Das habe ich ja schon...


4

06.04.2013, 01:15

Wo ist dann das Problem?
Schreib einfach die Datei neu, nachdem du Einträge aus der Listview gelöscht hast.

5

06.04.2013, 02:32

Ich lese die Datei ja aus, somit wird sie im ListView dargestellt.
Und wenn ich einen Eintrag hinzufüge schreibe ich dann Wort1;Wort2 etc. in eine Textdatei, welche dann ausgelesen wird.
Wie soll ich die dann neu schreiben?


6

06.04.2013, 03:05

Du schreibst sie neu, indem du nichts an die Datei anhängst, sondern sie einfach zum normalen Schreiben öffnest und dann alle Einträge reinschreibst. Dabei wird der vorherige Inhalt komplett gelöscht.

C#-Quelltext

1
2
3
4
5
6
System.IO.StreamWriter file = new System.IO.StreamWriter("textdatei.txt");
foreach (ListViewItem item in listView.Items)
{
    file.Write(item.Text+";");
}
file.Close();

Werbeanzeige