Leere Zeile in Listview löschen Verfasst am: 08.05.2008, 13:39
Moin Leute!
Wollte mal fragen, wie man eine leere Zeile aus ner ListView löscht!
Hab auf die Schnelle gerade nichts gefunden! oO
MfG _________________
tr4st Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 486
Verfasst am: 08.05.2008, 13:53
Mit Count die Zeilen zählen, For Schleife, darin dann abfragen ob Text = "" wenn True dann GoTo nutzen oder wenn du alle direkt entfernen willst dann machst den Löschvorgang direkt in die Schleife.
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 08.05.2008, 15:27
Du solltest schon beim einfügen verhindern das leere Einträge erstellt werden. Anonsten mach es so wie tr4st sagt. Auch wenn ich GoTo nicht für optimal halte^^
Und beim Vergleich solltest du StrComp() nutzen und vbNullstring stat "". Ist weit schneller.
boehser enkel Tutorial Leser
Anmeldedatum: 01.05.2008 Beiträge: 58
Verfasst am: 08.05.2008, 15:28
Visual Basic: [code] For a = 1 To lv.ListItems.Count If lv.ListItems(a).Text = vbNullstring Then lv.ListItems.Remove (a) End If Next a [/code]
so ungefähr...
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 08.05.2008, 15:53
Ach ne. Hab nen Denkfehler gehabt. Da es um nen leeren String geht ist LenB() die beste Wahl.
wirkt sich dass denn so extrem auf die geschwindigkeit aus?
r4z3r Poster
Anmeldedatum: 16.04.2008 Beiträge: 173
Verfasst am: 08.05.2008, 16:30
Ich denke mal, dass es mit der Anzahl der Einträge zusammenhängt. Bei extrem vielen Einträgen wäre ZiGs Methode die bessere. Aber wenn du nur ein paar Einträge in deinem Listview hast sollte die Methode eher keine Rolle spielen
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 08.05.2008, 16:39
Ach. Speed spielt immer ne Rolle. Besonders bei VB6^^ Jedenfalls bin ich so ein Speedfanatiker.
ListView1.Visible noch auf False setzen (Gibt auch nen code auf vbarchiv oder activevb wo einfach die Aktualisierung verhindert wird) und dann ist es wirklich schnell.
Chillo1516 Coder
Anmeldedatum: 30.04.2008 Beiträge: 86
Verfasst am: 08.05.2008, 17:12
Wo wir grade beim Thema sind.... Jedes mal wenn ich einen Text in meine List1 lade, kommt vor dem Text immer eine Lehrzeile. Was muss ich machen um das zu verhindern? Oder hab ich was falsch gemacht?
Mit freundlichen Grüßen
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 08.05.2008, 17:15
Ähm ja, irgendwas machst du falsch^^
Leere Zeilen verhindern ist aber nicht schwer. Visual Basic: [code] if LenB(DeinText) <> 0 then 'Hier in List1 eintragen End if [/code]
boehser enkel Tutorial Leser
Anmeldedatum: 01.05.2008 Beiträge: 58
Verfasst am: 08.05.2008, 18:11
Chillo1516 kannst ja mal posten wie dus gemacht hast dann sehen wir vielleicht, was du falsch gemacht hast.
Visual Basic: [code] On Error GoTo 1 Open "C:mails.txt" For Input As #1 Dim sBuffer As String Do Until EOF(1) Line Input #1, sBuffer List1.AddItem sBuffer Loop If LenB(a) <> 0 Then List1.RemoveItem (a) Close #1 1: Exit Sub End If [/code]
So, und es funktzwar aber erst...wenn man das ding ein zweites mal lädt. Also das ganze sind 2 Formen wenn man die erste öffnet und dann die 2te und dann das Textdocument lädt komm immer noch eine Leerzeile. Wenn man aber nur die form2 zumacht und dann wieder aufmacht und dann nochmal lädt dann gehts..! Sorry für die Wortwiederholungen!
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 08.05.2008, 19:07
Visual Basic: [code] On Error GoTo 1 Open "C:mails.txt" For Input As #1 Dim sBuffer As String Do Until EOF(1) Line Input #1, sBuffer if lenB(sBuffer) <> 0 then List1.AddItem sBuffer end if Loop Close #1 Exit Sub 1: End If [/code]
Chillo1516 Coder
Anmeldedatum: 30.04.2008 Beiträge: 86
Verfasst am: 08.05.2008, 19:26
Sorry das funktioniert immer noch nicht....hat jemand von euch Icq oder Msn das ich dem das Proj schicken kann....?
Mfg
boehser enkel Tutorial Leser
Anmeldedatum: 01.05.2008 Beiträge: 58
Verfasst am: 08.05.2008, 19:54
du könntest es einfach mal komplett hochladen
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 08.05.2008, 19:58
Was soll nicht funktionieren? Die Datei wird Zeilenweise eingelesen und nicht leere Zeilen werden in die Liste nicht mit aufgenommen. DoEvents wäre noch sinnvoll, aber ansonsten müßte es gehen.
Fuka Coder
Anmeldedatum: 01.05.2008 Beiträge: 97
Verfasst am: 09.05.2008, 08:28
Problem gelöst! Danke leute!
kann geclosed werden
MfG
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 09.05.2008, 09:00
Wäre aber trotzdem gut zu sagen was das Problem ist. Hier im Forum soll das ja auch anderen Leuten helfen.
dcm Poster
Anmeldedatum: 03.05.2008 Beiträge: 101
Verfasst am: 09.05.2008, 13:49
warum eigentlich lenB und nicht len? /edit: oh... war wohl eine seite dazwischen... sorry^^
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 11.05.2008, 09:47
LenB sollte einen kleinen Tick schneller sein. Der Unterschied ist aber glaube ich kaum messbar, da Len ansich extrem schnell ist. Aber ich benutze es trotzdem lieber. _________________
speedywolf Poster
Anmeldedatum: 01.05.2008 Beiträge: 108
Verfasst am: 12.05.2008, 11:39
Würde mich auch interessieren, wie du es gelöst hast.