Autor Thema: Werte in Array speichern  (Gelesen 3185 mal)

Offline magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Werte in Array speichern
« am: 01.12.08 - 16:22:52 »
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
Ich bekomme in der Zeile
Code
FileArray(arrayIndex$) = filepath$
die Fehlermeldung:
"Subscript out of range"!
Ich find den Fehler einfach nicht... Was ist falsch?

Danke und Gruß
Lotus Notes 8.0.2

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Werte in Array speichern
« Antwort #1 am: 01.12.08 - 16:24:42 »
Redim und Redim Preserve warten in der Designer Hilfe
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Werte in Array speichern
« Antwort #2 am: 01.12.08 - 16:37:29 »
Redim und Redim Preserve warten in der Designer Hilfe
Danke... scheint nun zu funktionieren:
Code
...
' Dimensionierung festlegen (wichtig!)
Redim Preserve FileArray(arrayIndex$)
FileArray(arrayIndex$) = filepath$
...
Richtig?
Lotus Notes 8.0.2

Offline magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Werte in Array speichern
« Antwort #3 am: 01.12.08 - 16:47:44 »
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)
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) {
...
angeben und das 'FileArray' ist dann nutzbar?

Danke.
Lotus Notes 8.0.2

Offline magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Werte in Array speichern
« Antwort #4 am: 02.12.08 - 09:19:46 »
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
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)
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ß

Lotus Notes 8.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz