Thema Datum  Von Nutzer Rating
Antwort
13.06.2014 11:14:52 Corina
NotSolved
13.06.2014 12:48:08 Gast28284
NotSolved
Rot Das liegt doch auf der Hand. @Gast28284
13.06.2014 15:03:22 Gast18733
*****
NotSolved
13.06.2014 15:47:18 Corina
NotSolved
13.06.2014 15:56:53 Gast18733
NotSolved

Ansicht des Beitrags:
Von:
Gast18733
Datum:
13.06.2014 15:03:22
Views:
817
Rating: Antwort:
  Ja
Thema:
Das liegt doch auf der Hand. @Gast28284
    Do While i <= UBound(Array1D)
      If InStr(1, Array1D(i), Expression, vbTextCompare) Then
        If count <= 0 Or n < count _
          Then n = n + 1
      ElseIf n > 0 Then
        Array1D(i - n) = Array1D(i) 'shift element up
      End If
      i = i + 1 'next element
    Loop
      
    If n > 0 Then
      If LBound(Array1D) <= UBound(Array1D) - n Then
        ReDim Preserve Array1D(LBound(Array1D) To UBound(Array1D) - n)
      Else
        Array1D = Split(Empty)
      End If
    End If

In der Do-Schleife wird im Array jedes einzelne Element untersucht, konkret wird geprüft ob darin der Ausdruck Expression vorkommt. Bei einem Treffer wird der Zähler n jedesmal um eins erhöht. Dieser Zähler gibt nachfolgend den Offset für einen Aufwärtsshift (Versatz) nachfolgender Elemente an. Optional kann für diesen Vorgang eine maximal zulässige Anzahl (Count) festgelegt werden.

Anschließend wird, wenn ein Aufwärtsshift stattfand, die größe des Arrays dementsprechend neu dimensioniert (oder im minimalfall, ein leeres Array, d.h. ohne Element erzeugt).

 

Wie der Name der Prozedur schon verrät, wird damit ein Element (oder mehrere) aus der Liste entfernt und alle übrigen Elemente werden dann nach oben verschoben.

 

PS: Nicht jeder Furz muss kommentiert werden, vorallem nicht wenn es aus dem Quellcode (z.B. Benennung von Variablen etc.) hervorgeht (was üblicherweise bei einem ~10 Zeile nunmal so ist).

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.06.2014 11:14:52 Corina
NotSolved
13.06.2014 12:48:08 Gast28284
NotSolved
Rot Das liegt doch auf der Hand. @Gast28284
13.06.2014 15:03:22 Gast18733
*****
NotSolved
13.06.2014 15:47:18 Corina
NotSolved
13.06.2014 15:56:53 Gast18733
NotSolved