Nachfolgend eine kleine einfache Prozedur, mit der sich ein Element aus einem Arrays löschen lässt. So gibt es keine Probleme: ' KillFlag = z.B. CHR$(1) ' man will z.B. nur ein Element löschen, hier Feld 5: ' ZeileInFeldLoeschenFilter FeldT(), 5, Killflag ' man will z.B. zwei Elemente löschen, hier Feld 5 und 7: ' FeldT(5) = Killflag: Feld(7) = Killflag ' ZeileInFeldLoeschenFilter FeldT(), -1, Killflag ' -1 -> Flag nur extern gesetzt ' man will z.B. zwei Elemente löschen, hier Feld 5 und 7: ' FeldT(5) = Killflag ' extern, FeldT(7) intern ' ZeileInFeldLoeschenFilter FeldT(), 7, Killflag ' -1 -> Flag intern und extern gesetzt Sub ZeileInFeldLoeschenFilter(ByRef Feld() As String, PlatzNummer As Long, _ Killflag As String) ' PlatzNummer < 0 bedeutet Killflag wurde nur extern gesetzt, ' z.B. Feld(2) = Killflag, Feld(3) = Killflag ' Nur wenn Killflag intern gewünscht wird, sonst Platznummer < 0 If PlatzNummer >= 0 Then Feld(PlatzNummer) = Killflag End If Feld() = Filter(Feld(), Killflag, False, vbBinaryCompare) End Sub Beispiele Dim FeldT() As String Dim KillFlag As String: KillFlag = "°" ' z.B. ' Zeilen löschen extern ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" FeldT(1) = KillFlag ZeileInFeldLoeschenFilter FeldT(), -1, KillFlag MsgBox Join(FeldT(), "|"), , "Markierte Zeile 1 wurde extern gelöscht" MsgBox UBound(FeldT()) ' Zeilen löschen intern ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" ZeileInFeldLoeschenFilter FeldT(), 1, KillFlag MsgBox Join(FeldT(), "|"), , "Zeile 1 wurde intern gelöscht" MsgBox UBound(FeldT()) ' Zeilen löschen extern und intern ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" FeldT(1) = KillFlag ' extern ZeileInFeldLoeschenFilter FeldT(), 2, KillFlag MsgBox Join(FeldT(), "|"), , "Zeile 1 extern, Zeile 2 intern gelöscht" MsgBox UBound(FeldT()) ' Würde gesamtes Feld löschen ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" FeldT(0) = KillFlag: FeldT(1) = KillFlag: FeldT(2) = KillFlag ' alle extern ZeileInFeldLoeschenFilter FeldT(), -1, KillFlag MsgBox Join(FeldT(), "|"), , "Zeile 0,1,2 extern gelöscht, Feld ist damit leer" MsgBox UBound(FeldT()) Dieser Tipp wurde bereits 7.489 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevOutBar 4.0 ![]() Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Tipp des Monats ![]() Dieter Otter HTTP-Download aus geschütztem Bereich Sie möchten eine Datei aus einem geschützten Bereich einer Homepage downloaden? Kein Problem - mit diesem Einzeiler. Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |