Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 18.01.04 - 19:50:25

Titel: Array-Werte abarbeiten
Beitrag von: TMC am 18.01.04 - 19:50:25
Hi,

ich habe folgendes Script (wesentlicher Auszug):
Code
Set doc = collection.GetFirstDocument()
   
While Not(doc Is Nothing)  
   If Not doc.FolderName(0) = "" Then
      szFolder = doc.FolderName(0) 
      Call doc.PutInFolder( szFolder, True )
   End If
   Set doc = collection.GetNextDocument(doc) 
Wend

Das String bzw. Array "szFolder" enthält eine Liste von Foldernamen,
z.B.
- Folder 1
- Folder 2
- Folder 3

Hier wird aber durch Call doc.PutInFolder( szFolder, True ) das Dok nur im 1. Folder angelegt (klar, wegen dem "szFolder = doc.FolderName(0)" ).

Wie muss ich das Script erweitern, dass nach und nach alle Array-Einträge abgearbeitet werden?

Matthias
Titel: Re:Array-Werte abarbeiten
Beitrag von: animate am 18.01.04 - 20:01:21
evtl. eine ForAll (oder heißts ForEach??)-Schleife über die Werte des Felds

ForAll vaFolder in doc.GetFirstItem(ITEM_NAME).Values
   hier kanns passieren, dass du vaFolders (Typ Variant) noch in einen String casten musst
End ForAll (oder wars Next??)


oder natürlich mit For..Next
Titel: Re:Array-Werte abarbeiten
Beitrag von: koehlerbv am 18.01.04 - 20:45:57
szFolder würde lt. Hungarian Notation auf einen String schliessen lassen  - das dürfte dann kein Array sein ;-)

Wenn Du weisst (!), dass es sich um Array handelt mit
Dim aFolders (0 to 2) as String
aFolder (0) = "Folder1"
aFolder (1) = "Folder2"
aFolder (2) = "Folder3"

dann geht folgendes am einfachsten:
For iLoop = 0 to Ubound (aFolders)
    ... Dein Code
Next

Durch Ubound musst Du Dich auch nicht um die Dimensionen des Array zu kümmern. Sagst Du auch noch
For iLoop = Lbound (aFolders) ...
braucht Dich Option Base nicht zu kümmern (was standardmässig o ist)

Hast Du noch keinen Plan, ob vFolders as Variant ein String oder Array ist, kannst Du vorab noch testen auf
IsScalar bzw.
IsArray

HTH,
Bernhard
Titel: Re:Array-Werte abarbeiten
Beitrag von: Semeaphoros am 18.01.04 - 21:18:03
Man kann natürlich auch so wie Thomas das gesagt hat die Values in ein Variant schreiben, das kommt in jedem Fall als Array daher, und das dann mit einem Forall .... End Forall abarbeiten.
Titel: Re:Array-Werte abarbeiten
Beitrag von: TMC am 19.01.04 - 20:56:10
Danke für Eure Hilfe.

ForAll zu nehmen liegt ja hier wirklich auf der Hand, habe es damit gemacht.

Grüße,
Matthias