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:
951
Rating: Antwort:
  Ja
Thema:
Das liegt doch auf der Hand. @Gast28284
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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