-
-
Neuer Benutzer
Öfters hier
Array positionen verschieben
Hallo was muss ich tun damit dieser Code in Basom funktioniert bin nicht sehr gut in Programmierung wäre für jede Hilfe dankbar auch andere Vorschläge die es mir ermöglichen Positionen in Arrays zu verschieben und die anderen aufrücken zu lassen
Danke schonmal
Public Function MoveInList(vList As Variant, _
ByVal nElement As Long, _
ByVal nMove As Long)
Dim i As Long
Dim vTemp As Variant
Dim nSize As Long
Dim nMode As Integer
' Dimensionsgröße
nSize = UBound(vList)
' Plausibilitätsprüfungen
If nElement + nMove < 0 Then
nMove = nMove - (nMove + nElement)
End If
If nElement + nMove > nSize Then
nMove = nSize - nElement
End If
' Mode: nach hinten oder nach vorne verschieben?
' (Vorzeichen ermitteln)
nMode = Sgn(nMove)
' Gültiger Wert?
If nMode <> 0 Then
' zu verschiebendes Element "merken"
vTemp = vList(nElement)
' Jetzt die einzelne Elemente verschieben
For i = nElement + nMode To nElement + nMove Step nMode
vList(i - nMode) = vList(i)
Next i
' Element an die gewünschte Position setzen
vList(nElement + nMove) = vTemp
End If
End Function
-
Erfahrener Benutzer
Robotik Einstein
Zwar schon altes Thema, aber falls es noch nicht geht: Berechne die Indizes in den Klammern schon mal im Voraus.
Bin mir nicht sicher ob Bascom hier ( vList(nElement + nMove) = vTemp
) checkt, dass es in der Klammer rechnen muss.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen