Domino 9 und frühere Versionen > ND8: Entwicklung
Werte in Array speichern
(1/1)
magic_halli:
Hi,
ich will Filepfade (von Attachments) in ein Array schreiben:
--- Code: ---Dim attachment As Variant
Set attachment = docMail.GetFirstItem("Body")
' TempDir des Win-Benutzers
tempdir$ = Environ("temp")
Dim FileArray() As Variant
arrayIndex$ = 0
If ( docMail.HasEmbedded ) Then
If ( attachment.Type = RICHTEXT ) Then
Forall o In attachment.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
' Attachment in TempVerzeichnis des Nutzers speichern
filepath$ = tempdir$ & "\" & o.Source
Call o.ExtractFile( filepath$ )
' filepath$ in Array schreiben
FileArray(arrayIndex$) = filepath$
arrayIndex$ = arrayIndex$ + 1
End If
End Forall
End If
End If
--- Ende Code ---
Ich bekomme in der Zeile
--- Code: ---FileArray(arrayIndex$) = filepath$
--- Ende Code ---
die Fehlermeldung:
"Subscript out of range"!
Ich find den Fehler einfach nicht... Was ist falsch?
Danke und Gruß
eknori (retired):
Redim und Redim Preserve warten in der Designer Hilfe
magic_halli:
--- Zitat von: eknori am 01.12.08 - 16:24:42 ---Redim und Redim Preserve warten in der Designer Hilfe
--- Ende Zitat ---
Danke... scheint nun zu funktionieren:
--- Code: ---...
' Dimensionierung festlegen (wichtig!)
Redim Preserve FileArray(arrayIndex$)
FileArray(arrayIndex$) = filepath$
...
--- Ende Code ---
Richtig?
magic_halli:
Gleich noch ne Frage zum Array hinterher:
Dieses Array möchte ich an eine Java-Bibliothek (LS2J) übergeben und nutzen.
1. Ist das Array dann gleichzusetzen mit Java-ArrayList?
Ich will dieses Array an eine Java-Klasse (Konstruktor) übergeben. Als Beispiel mal hier, wie ich einen String-Value mitschicke:
--- Code: ---...
Set jClass = jSession.GetClass("MyClass")
' ---Konstruktor-Aufruf mit Parameterübergabe aufrufen
Set jObject = jClass.CreateObject("(Ljava/lang/String;)V",subject)
--- Ende Code ---
2. Wie schicke ich das Array rüber bzw. kann ich dann einfach in meinem Konstruktor (auf Java-Seite)
--- Code: ---...
public MyClass(String subject, ArrayList FileArray) {
...
--- Ende Code ---
angeben und das 'FileArray' ist dann nutzbar?
Danke.
magic_halli:
Ok, mal anders gefragt:
Ich speichere in mein Array Filenamen von Attachments (funktioniert). So wird mein Array in LotusScript letztendlich deklariert:
--- Code: ---Dim FileArray() As String
--- Ende Code ---
Jetzt will ich das Array mittels LS2J an mein Java-Programm einfach übergeben. Hierzu rufe ich einen Konstruktor einer Klasse auf und übergebe diesem bereits andere Werte:
--- Code: ---...
Set jClass = jSession.GetClass("MyClass")
' ---Konstruktor-Aufruf mit Parameterübergabe
Set jObject = jClass.CreateObject("(Ljava/lang/String;)V",subject)
--- Ende Code ---
Jetzt muss ich "einfach" nur noch das Array 'FileArray' mit übergeben werden!
1. Welche Signatur muss ich für das Array hier zusätzlich noch einfügen?
2. Welchen Typ hat dann in Java dieses Array aus LotusScript (String[], ArrayList etc.)? Das kann ich ja dann in Java entsprechend deklarieren.
Gruß
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln