Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: haeppchen am 28.01.05 - 10:38:50

Titel: Löschen eines Elementes aus einem Variant
Beitrag von: haeppchen am 28.01.05 - 10:38:50
Hallo zusammen,

wie kann ich ein Element aus einem Variant löschen?
Mit der "Erase"-Anweisung wie bei Listen geht's leider nicht, ich erhalte immer eine Fehlermeldung. Laut Domino-Designer-Hilfe ist Erase auch nur für Listen und Arrays möglich.

Wer kann mir helfen?

Simon
Titel: Re: Löschen eines Elementes aus einem Variant
Beitrag von: Thomator am 28.01.05 - 10:52:18
Hallo,

probier mal, die Ganze Geschichte in die Abfrage:

If isArray(<<variant>>) Then
      -> Array-Operationen
End If

einzubetten. Alternativ kannst Du Dir auch alle Elemente, die Du weiter verwenden willst, in einen zweiten Array rüberziehen.

Bsp:
Dim tmp(0 to ...) as <<Datentyp>>
If isArray(<<variant>>) Then
    ForAll element in <<variant>>
          if Element->Bedingung erfüllt Then
               tmp.redimPreserver(uBound(tmp) + 1)
               tmp(uBound(tmp) -1) = element
          End if
    End Forall
End If

So in der Art.

Thomas
Titel: Re: Löschen eines Elementes aus einem Variant
Beitrag von: Gandhi am 28.01.05 - 11:09:21
Nicht vergessen:  Redim Preserve(vor allem auch noch in der Schleife) macht alle Programme langsam.
Besser:
Allen Werten, die gelöscht werden sollen einen 'Null' Wert zuweisen - und dann in einem einzigen redim den Array komprimieren - oder aber den Array direkt in eine Liste umschreiben und daraus die Werte löschen.