Nachfolgend eine kleine einfache Prozedur, mit der sich ein neues Element innerhalb eines Arrays an eine bestimmte Position einfügen lässt. Sub ZeileInFeldEinfuegenEinfach(ByRef Feld() As String, _ PlatzNummer As Long, EinfuegeText As String) Feld(PlatzNummer) = EinfuegeText + vbCrLf + Feld(PlatzNummer) Feld = Split(Join(Feld(), vbCrLf), vbCrLf, -1, vbBinaryCompare) End Sub Aufrufbeispiel: Dim FeldT() As String ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegenEinfach FeldT(), 1, "Zeile 1 neu" MsgBox Join(FeldT(), "|") Anmerkungen: ' Feldzeilen enthalten kein vbCrLf Sub ZeileInFeldEinfuegen(ByRef Feld() As String, _ PlatzNummer As Long, EinfuegeText As String) Feld(PlatzNummer) = EinfuegeText + vbCrLf + Feld(PlatzNummer) Feld = Split(Join(Feld(), vbCrLf), vbCrLf, -1, vbBinaryCompare) End Sub ' falls CRLF im Text selbst vorkommt Sub ZeileInFeldEinfuegenAT(ByRef Feld() As String, _ PlatzNummer As Long, EinfuegeText As String, Trenner As String) Feld(PlatzNummer) = EinfuegeText + Trenner + Feld(PlatzNummer) Feld = Split(Join(Feld(), Trenner), Trenner, -1, vbBinaryCompare) End Sub ' Feldzeilen enthalten kein vbCrLf Sub ZeileInFeldLoeschen(ByRef Feld() As String, PlatzNummer As Long) Dim KillFlag As String KillFlag = Chr$(1) ' z.B. Feld(PlatzNummer) = KillFlag ' diese Zeile soll gelöscht werden Feld = Split(Replace(Join(Feld(), vbCrLf), KillFlag + vbCrLf, "", _ 1, -1, vbBinaryCompare), vbCrLf, -1, vbBinaryCompare) End Sub ' falls CRLF im Text selbst vorkommt Sub ZeileInFeldLoeschenAT(ByRef Feld() As String, PlatzNummer As Long, _ Trenner As String, KillFlag As String) ' Hinweis: Trenner <> KillFlag! Feld(PlatzNummer) = KillFlag ' diese Zeile soll gelöscht werden Feld = Split(Replace(Join(Feld(), Trenner), KillFlag + Trenner, "", _ 1, -1, vbBinaryCompare), Trenner, -1, vbBinaryCompare) End Sub Beispiele Dim FeldT() As String: ' Eine Zeile einfügen ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegen FeldT(), 1, "Zeile 1 neu" MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde eingefügt" MsgBox UBound(FeldT()) ' Mehrere Zeilen einfügen ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ' gleich zwei Zeilen einfügen ZeileInFeldEinfuegen FeldT(), 1, "Zeile 1 neu" + vbCrLf + "Zeile 2 neu" MsgBox Join(FeldT(), "|"), , "Zwei Zeilen wurde eingefügt" MsgBox UBound(FeldT()) ' Eine Zeile einfügen Version AT, falls vbCrLF$ im FeldT() vorkommen könnte ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegenAT FeldT(), 1, "Zeile 1 neu", Chr$(1) MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde eingefügt, Version AT" MsgBox UBound(FeldT()) ' Mehrere Zeilen einfügen Version AT, falls vbCrLF$ im FeldT() vorkommen könnte ' Hier: Mehrere Zeilen einfügen, z.B. 3 Leerzeilen vor Zeile 1 ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegenAT FeldT(), 1, String$(2, Chr$(1)), Chr$(1) MsgBox Join(FeldT(), "|"), , "Drei Leerzeilen wurden eingefügt Version AT" MsgBox UBound(FeldT()) ' Eine Zeile löschen ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" ZeileInFeldLoeschen FeldT(), 1 MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde gelöscht" MsgBox UBound(FeldT()) ' Eine Zeile löschen Version AT, falls vbCrLF$ im FeldT() vorkommen könnte ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" ZeileInFeldLoeschenAT FeldT(), 1, Chr$(1), Chr$(2) ' Trenner <> KillFlag! MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde gelöscht Version AT" MsgBox UBound(FeldT()) Dieser Tipp wurde bereits 5.758 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 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. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |