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.778 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
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. |