Autor Thema: Werte in Array speichern  (Gelesen 3147 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