Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: DAU-in am 21.08.06 - 10:04:58
-
ich frage die Rollen des aktuellen Users ab, und möchte dann die [ und ] von den Rollen entfernen. Die erste Replace-Zeile wird abgearbeitet, im Debugger steht auch alles richtig drin, bei der 2. kommt die Fehlermeldung: Array subscript out of Range
Es sind gerade 34 Rollen, die er ausliest.
Version ist 7.0.1
Was mache ich falsch bzw. was denke ich gerade falsch?
Set acl_Current = db_current.ACL
Set acl_entry = acl_Current.GetEntry(session.UserName)
var_Roles = acl_Entry.Roles
var_Roles = Replace(var_Roles, "[", "")
var_Roles = Replace(var_Roles, "]", "")
-
Du musst das Array "hochzählen". Woher weiss das Array denn beim zweiten Durchlauf, welcher Teil des Arrays gelöscht werden soll?
-
wenn ich die NotesHilfe richtig interpretiere:
Return value
Replace returns an Array of type String that contains sourceArray, where any values in replaceArray have been replaced by the corresponding values in replacementArray.
Usage
Replace searches the String in sourceArray for the String in replaceArray. If a match is found, the substring is replaced with a corresponding substring from replacementArray. Each String in replaceArray is scanned against each String in sourceArray as modified by prior substitutions. Replace is case sensitive.
im ersten Durchgang wird mein var_Roles verändert, und dient im 2. Durchlauf als Ausgang. Eigentlich sollte das in der 2. Zeile dann doch genauso durchlaufen wie in der ersten?
Ich habe es gerade mit 7 Werten versucht, die aus einem Feld eingelesen wurden, da hat das ganze prima funktioniert.
Es muss irgendwas mit der Anzahl der Einträge zu tun haben, aber was?
-
Wäre mal einen Versuch wert :
var_Roles2 = Replace(var_Roles, "]", "")
-
mit var_Roles2 bekomme ich 'wrong number of Array subscripts'
-
So:
Dim replacementArray(0 To 1) As String
replacementArray(0) = "["
replacementArray(1) = "]"
Set acl_Current = db_current.ACL
Set acl_entry = acl_Current.GetEntry(session.UserName)
var_Roles = acl_Entry.Roles
var_Roles = Replace(var_Roles, replacementArray, "")
Andreas
-
Danke, Glombi, es funzt!
Aber warum hat meine Formel bei den Werten aus dem Feld funktioniert, und bei den Rollen dann nicht mehr??