Autor Thema: Array subscript out of Range  (Gelesen 2566 mal)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Array subscript out of Range
« 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, "]", "")
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

botschi

  • Gast
Re: Array subscript out of Range
« Antwort #1 am: 21.08.06 - 10:10:00 »
Du musst das Array "hochzählen". Woher weiss das Array denn beim zweiten Durchlauf, welcher Teil des Arrays gelöscht werden soll?

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Array subscript out of Range
« Antwort #2 am: 21.08.06 - 10:22:30 »
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?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

klaussal

  • Gast
Re: Array subscript out of Range
« Antwort #3 am: 21.08.06 - 10:27:19 »
Wäre mal einen Versuch wert :

var_Roles2 = Replace(var_Roles, "]", "")

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Array subscript out of Range
« Antwort #4 am: 21.08.06 - 10:37:22 »
mit var_Roles2 bekomme ich 'wrong number of Array subscripts'
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Glombi

  • Gast
Re: Array subscript out of Range
« Antwort #5 am: 21.08.06 - 10:47:14 »
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

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Array subscript out of Range
« Antwort #6 am: 21.08.06 - 10:55:45 »
Danke, Glombi, es funzt!

Aber warum hat meine Formel bei den Werten aus dem Feld funktioniert, und bei den Rollen dann nicht mehr??
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz