Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Fuka
Coder
Coder

Anmeldedatum: 01.05.2008
Beiträge: 97

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
Ü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
Ü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
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
Ü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.

Visual Basic: [code]if LenB(listview1.listitems(i).Text) = 0 then[/code]
 
boehser enkel
Tutorial Leser
Tutorial Leser



Anmeldedatum: 01.05.2008
Beiträge: 58


Verfasst am: 08.05.2008, 16:21

wirkt sich dass denn so extrem auf die geschwindigkeit aus?
 
r4z3r
Poster
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
Ü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. Wink

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. Wink
 
Chillo1516
Coder
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? Very Happy

Mit freundlichen Grüßen
 
ZiG
Überflieger
Ü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
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.

Fuka leer und nich lehr Wink
 
Chillo1516
Coder
Coder

Anmeldedatum: 30.04.2008
Beiträge: 86


Verfasst am: 08.05.2008, 18:57

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!Very Happy
 
ZiG
Überflieger
Ü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
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
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
Ü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
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
Ü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. Wink
 
dcm
Poster
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
Ü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
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.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: leere zeile, listview, löschen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Suche viele Leute für einen Downloader 516 28.09.2009, 16:10
Keine neuen Beiträge Gesamten Ordner löschen?! 471 04.09.2007, 21:39
Keine neuen Beiträge Löschen 492 12.06.2007, 10:36
Keine neuen Beiträge Ordner löschen 875 06.04.2007, 16:27
Keine neuen Beiträge listview item löschen 514 07.03.2007, 15:38
 



[ Time: 0.7647s ][ Queries: 161 (0.0931s) ][ GZIP on - Debug on ]