Hi,
ich möchte wie im Titel schon beschrieben, eine listview auf doppelte Einträge untersuchen und die Doppelten löschen. Dies funktioniert auch fast, aber leider nur fast. Ich habe auch keine Ahnung, was falsch ist. Andere Codes (auch in diesem Forum) brachten leider den gleichen Fehler hervor.
Hier erstmal mein geschriebener Code.
Listview ist wie folgt gefüllt:
1---AAA---BBB
2---AAA---BBB
3---AAA---BBB
4---CCC---DDD
5---CCC---DDD
Die Zeilen mit den fortlaufenden Nummern 2 und 3 werden löscht, Zeile 1 bleibt stehen.
Das Problem ist nun, dass jetzt ein Fehler auftritt. Die Quelle ist die Bedingung der 2. While-Schleife: "InvalidArgument=Value mit dem Wert 2 ist für index ungültig. Parametername: index"
Zu diesem Zeitpunkt sieht Listview so aus:
1---AAA---BBB
4---CCC---DDD
5---CCC---DDD
In der 2. While-Schleife
ist i1 jetzt 1 und i2 jetzt 2, das heißt für mich, dass das Programm jetzt die Subitems(2) der beiden letzten Zeilen überprüft, dass soll es ja auch.
Aber wo ist da jetzt der Fehler? Ich komm da einfach nicht weiter. Wie gesagt, auch andere Codes geben das gleichen Fehler aus.
Ich habe es auch mit .Compare versucht, das bringt aber den gleichen Fehler.
Irgendwo muss ein Fehler liegen, den ich nicht erkenne...
Danke für eure Hilfe.
ich möchte wie im Titel schon beschrieben, eine listview auf doppelte Einträge untersuchen und die Doppelten löschen. Dies funktioniert auch fast, aber leider nur fast. Ich habe auch keine Ahnung, was falsch ist. Andere Codes (auch in diesem Forum) brachten leider den gleichen Fehler hervor.
Hier erstmal mein geschriebener Code.
Quellcode
- Dim i1 As Integer = 0
- Dim i2 As Integer = i1 + 1
- If Me.ListView1.Items.Count > i1 Then
- For i As Integer = 0 To Me.ListView1.Items.Count
- While Me.ListView1.Items(i1).SubItems(1).Text = Me.ListView1.Items(i2).SubItems(1).Text
- While Me.ListView1.Items(i1).SubItems(2).Text = Me.ListView1.Items(i2).SubItems(2).Text
- Me.ListView1.Items.RemoveAt(i2)
- End While
- End While
- i1 += 1
- i2 += 1
- Next
- End If
Listview ist wie folgt gefüllt:
1---AAA---BBB
2---AAA---BBB
3---AAA---BBB
4---CCC---DDD
5---CCC---DDD
Die Zeilen mit den fortlaufenden Nummern 2 und 3 werden löscht, Zeile 1 bleibt stehen.
Das Problem ist nun, dass jetzt ein Fehler auftritt. Die Quelle ist die Bedingung der 2. While-Schleife: "InvalidArgument=Value mit dem Wert 2 ist für index ungültig. Parametername: index"
Zu diesem Zeitpunkt sieht Listview so aus:
1---AAA---BBB
4---CCC---DDD
5---CCC---DDD
In der 2. While-Schleife
ist i1 jetzt 1 und i2 jetzt 2, das heißt für mich, dass das Programm jetzt die Subitems(2) der beiden letzten Zeilen überprüft, dass soll es ja auch.
Aber wo ist da jetzt der Fehler? Ich komm da einfach nicht weiter. Wie gesagt, auch andere Codes geben das gleichen Fehler aus.
Ich habe es auch mit .Compare versucht, das bringt aber den gleichen Fehler.
Irgendwo muss ein Fehler liegen, den ich nicht erkenne...
Danke für eure Hilfe.