Domino 9 und frühere Versionen > Entwicklung
@GetMembers in Script gesucht
TMC:
Hmm, ja, klar.
Danke, trotzdem bin ich von Natur aus faul, ich dachte es hätte vielleicht jemand sowas schon mal gemacht ;)
Ansonsten mache ich es selber und stell es dann hier rein.
koehlerbv:
Hallo, Matthias,
ich bin mir noch nicht sicher, ob ich jetzt alle Fälle abgedeckt habe ... Auf jeden Fall ist der Funktion der Datentyp (relativ) egal, zurückgegeben wird auf jeden Fall ein Array (EMPTY, falls kein Result oder ein Fehler aufgetreten ist oder falsche Parameter übergeben wurden).
HTH,
Bernhard
PS: Die Routine "ErrorHandler" muss man sich natürlich nach eigenen Bedürfnissen selber schreiben ...
--- Code: ---Function ArrayGetMembers (vValues As Variant, iStartPos As Integer, iMembers As Integer)
' Purpose: Retrieve from position iPosition iMembers from the given array
' Arguments:
' vValues - the given array
' iPosition - the first element to retrieve (0 is the index of the first element)
' iMembers - the numbers of elements from the array to retrieve
' Returns: The array without the given value to remove, empty, if there is no value to return !
' Created by: Bernhard Koehler on 24.04.2004 Modified by:
Dim vResult () As Variant 'The resulting array
Dim vEmpty As Variant 'In case of errors / wrong parameters: An empty array
Dim iLoop As Integer
Dim iLastPos As Integer 'The real number of elements to retrieve
On Error Goto ErrorRoutine
ArrayGetMembers = vEmpty 'The default result (an empty variant)
If Isempty (vValues) Then
ArrayGetMembers = vEmpty
Exit Function
End If
If Isscalar (vValues) Then
If iStartPos = 0 Then
Redim vResult (0 To 0)
vResult (0) = vValues
ArrayGetMembers = vResult
Exit Function
Else
ArrayGetmembers = vEmpty
Exit Function
End If 'of "iPosition = 0"
End If 'of "Isscalar (vValues)"
If iStartPos > Ubound (vValues) Then
ArrayGetMembers = vEmpty
Exit Function
End If
If (iStartPos + iMembers) - 1 > Ubound (vValues) Then
iLastPos = Ubound (vValues) - iStartPos
Else
iLastPos = iMembers - 1
End If
Redim vResult (0 To iLastPos)
For iLoop = 0 To iLastPos
vResult (iLoop) = vValues (iStartPos + iLoop)
Next
ArrayGetMembers = vResult
Exit Function
ErrorRoutine:
Call ErrorHandler ("ArrayGetMembers")
Exit Function
End Function
--- Ende Code ---
TMC:
Hi Bernhard,
cool, vielen Dank !!
Ich habe
a) Deinen Code erfolgreich getestet
b) die function auch so nochmal durchgesehen
Fazit: Es sollten so alle Fälle abgebildet sein die auftauchen könnten. Es gibt also nix verbesserungswürdiges :-) (höchstens - nice to have - die Function-Beschreibung, da würde ich noch @getmembers reinbringen).
Ist eine tolle Umsetzung!
Many thanks,
Matthias
koehlerbv:
Very gern geschehen ;-)
Wenn Du noch was findest (hier gibt es ja jede Menge Möglichkeiten, was die Parameter und die Datentypen angeht), lass es mich bitte wissen.
Was die Funktions-Beschreibung angeht und en Verweis auf @GetMembers: Da habe ich mich jetzt etwas schwer getan - die @function ist ja undokumentiert ;D
Bernhard
TMC:
--- Zitat von: koehlerbv am 24.04.04 - 21:52:00 ---Was die Funktions-Beschreibung angeht und en Verweis auf @GetMembers: Da habe ich mich jetzt etwas schwer getan - die @function ist ja undokumentiert ;D
--- Ende Zitat ---
;D
Yoo, Du hast Recht :-)
Erst habe ich auch überlegt, das gleich über Evaluate zu lösen, aber da undokumentiert ziehe ich eine Script-Lösung vor :-)
Egal, ich würde das @getmembers trotzdem reinbringen - ist aber mehr "Geschmacksfrage", die Function selbst funktioniert ja prima :D
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln