Domino 9 und frühere Versionen > ND7: Entwicklung

FM "Illegal reference to array or List"

(1/2) > >>

ManuMF:
Hallo  liebe Notes-Gurus.

ich habe mal wieder eine Script-Frage mit o.a. FM:

ich habe innerhalb eines Agenten 2 Listen, die ich vergleichen möchte.. wenn ein wert von Liste 1 nicht in Liste 2 vorhanden ist, soll er diesen Wert in eine neue Liste eintragen.



--- Code: ---Dim DiffListold() As  Variant
Dim DiffListnew() As Variant
Redim DiffListold(0)
Redim DiffListnew(0)
Dim i As Integer
i=0
Forall m In FullnameListold
indexresult = Arraygetindex( FullnameListnew , m)
If Isnull(indexresult) Then
difflistold= AddToList(m,Difflistold)
i=i+1
Redim Preserve DiffListold(i)
End If
i=i+1
End Forall

--- Ende Code ---

AddToList ist eine Funktion, die so aussieht.

--- Code: ---Function AddToList (Value As Variant, ValueList As Variant)
Dim tmpValueList As Variant
' Load the array element by element so that the datatype is preserved
Redim tmpValueList(Ubound(ValueList))
For i = 0 To Ubound(ValueList)
tmpValueList(i) = ValueList(i)
Next
' Determine if we are dealing with a new list, if absolutely no
'values in the first entry, then add new value to 0
If Ubound(tmpValueList) = 0 And Cstr(tmpValueList(0)) = "" Then
x = 0
Else
x = Ubound(tmpValueList) + 1
End If
Redim Preserve tmpValueList(x)
tmpValueList(x) = Value
AddToList = tmpValueList
Valuelist=AddToList
End Function
--- Ende Code ---

 bei dem Aufruf von "difflistold= AddToList(m,Difflistold)" bekomm ich die FM.

Wenn ich nur ein "Call AddToList(m,Difflistold)" aufrufe wird die Funktion zwar ausgeführt, aber meine Liste "DiffListold" natürlich nicht gefüllt.

Ich stell mich da grad recht dumm an.
Wie wäre denn der korrekte Aufruf.

Kann jemand helfen?

Danke & viele Grüße
Manu

m3:
1) "Option Declare" ist nicht nur eine gute Idee, sondern sollte auch verwendet werden.

2) Der Aufruf ist OK, der Funktionsdefinition fehlt der Rückgabewert. Siehe Designer-Hilfe, Thema "Defining functions".

ManuMF:
Hallo m3,

Pkt1, ist erledigt - denk ich nicht immer dran ;)

Pkt2: kannst du das in meinem Fall etwas konkretisieren?
Falls du meinst: "Function AddToList (Value As Variant, ValueList As Variant) as Variant", dann bekomm ich immer noch die gleiche FM bei der Zuweisung:
"difflistold= AddToList(m,Difflistold)"

Hilf mir bitte etwas  ???

m3:
Bekommst Du wirklich die Fehlermeldung in der Zeile? Debug mal mit "Step Into". Ich würd mal sagen, dass er irgendwo in der Funktion fliegt.

Ausprobieren, ... geht leider nicht, dafür fehlen dem Code entscheidende Elemente (z.B. die definition von "Difflistold").

ManuMF:
Debug geht ja nicht, ich bekomm die FM ja schon beim Speichern :(

Definition DiffListold -> "Dim DiffListold() As  Variant" steht im Code.

Ich möchte zwei Listen vergleichen, und gehe über die Forall-Schleife über alle Elemente in der Liste "FullnameListold" und suche ob das momentane Element in Liste "Fullnamesnew" drin steht, wenn nicht, dann soll er über die Funktion "AddToList" dieses Element in die Liste "DiffListOld" eintragen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln