Domino 9 und frühere Versionen > Entwicklung

Endlosschleife? - Remove Items

<< < (4/5) > >>

TMC:
@Multitasking-Bernhard:
Jetzt hab ich beschlossen: "Never touch a running Code".
Mein While/Wend läuft ja prima auf die Items, daher hab ich einfach die Änderungsabfrage von Dir in meinem bestehenden Code integriert und nun läuft es prima  :). Ich übersehe jetzt mal das item.name... (auch wenn ich das dann bestimmt in 2 Wochen brauche :-\).

However: Code geht jetzt 1a, ist performant, und ich verstehe was er macht  :)

cu,
TMC


--- Zitat ---Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim item As NotesItem
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument
   
   While Not(doc Is Nothing)
      vItemChanged = False 'Variable um zu Überprüfen ob Doc sich geändert hat (damit nicht 100000mal gespeichert wird)
      While (doc.HasItem("test33"))
         Set item = doc.GetFirstItem("test33")
         Call item.Remove
         vItemChanged = True 'Jetzt Änderung setzen
      Wend
      '** Wenn Doc sich geändert: Speichern, else: fortfahren      
      If vItemChanged = True Then
         Call doc.Save (True, False, True)
      End If
      
      Set doc = collection.GetNextDocument(doc)
   Wend
   
End Sub

--- Ende Zitat ---

koehlerbv:
Cool - das kommt ja auf's selbe 'raus.
Und demnächst schauen wir mal, warum mein voreilig gepostetes Zeugs nicht auf Anhieb funktioniert hat - machen wir zusammen, okay ?

Und mein Programm, um mögliche Verzeichnisnamen anzulegen und unmögliche Verzeichnisnamen zusammenzustutzen und dann anzulegen, läuft *prinzipiell* jetzt auch ;-)

Ciao,
Bernhard

Semeaphoros:
Probiers mal so: Ich hab schon beobachtet, das Objekte innerhalb von Objekten nicht initialisiert sind, wenn man sie direkt ansprechen will. Warum das so ist weiss ich nicht.

      Set Items=doc.items
      Forall item In items        
         If item.Name = "test33" Then
            Call item.Remove
            BChanged = True
         End If
      End Forall
 

TMC:
@Semaphoros:
Danke für diesen Tipp.

Hast Du vielleicht Lust, die Thematik hier zu ergänzen bezügl. items in Forall ?

http://www.atnotes.de/index.php?board=11;action=display;threadid=11314


TMC

Semeaphoros:
Also, ich hab in Deinem anderen Thread mal noch eine Uebersicht über die Schlaufen in LS gemacht, da ich eigentlich hier aufräumen sollte (aber keine Lust dazu habe ...) hab ich mich mal darauf beschränkt. Wenn ich da nix mehr schreibe, erinnere mich in ein paar Tagen nochmal dran, da liesse sich tatsächlich eine Schlaufen-Uebersicht zusammenstellen. Kann ich gut verstehen, dass man mit dem Schlaufen - Zeugs in eine Endlos-Schlaufe gerät mit dem Kapieren :-)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln