AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
22.01.20 - 07:17:21
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News: Jetzt mit HCL Notes / Domino 11 und einem Extraboard für Nomad!
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Projekt Bereich (Moderator: Hoshee)
| | |-+  Welche Schleife wann in Script
« vorheriges nächstes »
Seiten: [1] 2 3 4 Nach unten Drucken
Autor Thema: Welche Schleife wann in Script  (Gelesen 37652 mal)
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« am: 27.09.03 - 21:18:31 »

** Edit 26.01.04 **

Die Dokumentation "Schleifen in Lotus Script" befindet sich ab sofort unter Best Practices als PDF zum Download:
Best Practices - Schleifen in Lotus Script

** Edit **



Hi,

ich bin noch ein ziemlicher Anfänger in Script, und überlege ständig neu welche Schleife wann zu verwenden, was ist die Auswirkung etc.

Daher vielleicht nicht schlecht das ganze mal "klarzustellen" für Anfänger  Wink

Ich fange mal an:

---
While / Wend

Beschreibung: Ist aus meiner Sicht eine Schleife, die gleichzeitig ein If / Then beinhaltet.

Beispiel:
While (doc.HasItem("test33"))
   Set item = doc.GetFirstItem("test33")
   Call item.Remove
Wend

Erklärung:
Im Beispiel überprüft While, ob das deklarierte Dokument (doc) das Item (HasItem) test33 hat.
Wenn ja: es wird der darauf folgende Code ausgeführt (set item.....)  bis das Wend da steht.
Das ganze wird solange wiederholt, bis doc.HasItem("test33") nicht mehr zutrifft, also kein Item namens test33 mehr vorhanden ist. Wenn nicht mehr zutreffend, dann wird der Code nach dem Wend ausgeführt.
---

Es gibt zwar einige Bücher, aber die finde ich bisher nicht so berauschend. Ich bin da zusehr praxisorientiert.
Ich werde diesen Thread jetzt einfach so nach und nach füllen und für mich selber nutzen, wenn noch jemand Lust hat, bitte gerne auch ergänzen / kommentieren.

TMC

** EDIT **
04.10.03 - 19:50: Aktelle Doku-Draft angehängt
08.11.03 - 16:10: Dokudraft Beta5 angehängt
08.11.03 - 18:00: Dokudraft Beta6 angehängt
09.11.03 - 14:30: Endgültige Version 1.00 angehängt
10.11.03 - 20:20: Version 1.01 angehängt (Minimale Änderungen vorgenommen, siehe History im Dok)
26.01.04 - 22:30: Auslagerung der PDF zu Best Practices
« Letzte Änderung: 26.01.04 - 20:30:38 von TMC » Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #1 am: 27.09.03 - 21:35:04 »

ForAll

Beschreibung:: Bedient sich einer Liste / Collection. Es werden also Variablen einer Liste/Collection zugeordnet. Und jeder Eintrag dieser Liste / Collection wird behandelt.

Beispiel:
<to be continued>

Erklärung:
<to be continued>
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #2 am: 27.09.03 - 21:45:17 »

Schau Dir mal die verschiedenen Do-Varianten an:

Do ... Loop

Do While ..... Loop

Do Until ..... Loop

Do ..... Loop While

Do .... Loop Until

Damit lässt sich eigentlich alles machen (inkl. While / Wend, welches nur aus historischen Gründen [Ur-Basic] überhaupt dabei ist). Mit den Do-Schleifen lassen sich eigentlich alle in den Theorien beschriebenen Schleifen (Kopfgesteuert - Fussgesteuert oder Endlos) realisieren. Dazu kommt dann nur noch For .... Next als Spezialkonstruktion für einen Zähler und ForAll, welches aus der OO-Welt stammt ("Standard"-Metzode von Listen-Objekten)
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #3 am: 27.09.03 - 21:50:10 »

Aha, sieh mal einer an:
Zitat
(inkl. While / Wend, welches nur aus historischen Gründen [Ur-Basic] überhaupt dabei ist).

Ist für mich völlig neu, dass dies mehr historisch ist.

Danke für die Info, interessant......

Ist ja fast wie die @Commands (z.B. @Command([ToolsRunMacro]). Ein Kollege erzählte mir erst letzte Woche, dass dies Überbleibsel aus R3 seihen, wo dies noch ein Menü war ("Tools")........

Na ja, ist jedenfalls ziemlich vor meiner Zeit, aber sollte man als Entwickler wissen.


TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #4 am: 27.09.03 - 21:55:28 »

Na, Rückwärtskompatibilität, die für Notes ja geradezu sprichwörtlich ist, hat eben seinen Preis, unter anderem darin, dass ältere Konstrukte durch neue abgelöst werden aber wegen der Kompatibilität eben noch da sind, oder eben wie TootsRunMacro immer noch so heissen, wie damals, als man sie erfand, auch wenn sie unterdessen ganz woanders zu finden sind.

Dafür ....... kann der N6 Client immer noch Notes V1 Datenbanken bearbeiten und man kann problemlos mit alten Clients auch auf einen D6 Server zugreifen. Man versuche mal mit Word2002 ein Dokument von Winword 2 aufzumachen ....... es gibt Leute, die haben die Lotus-Smartsuite nur deshalb installiert, weil WordPro das eben heute noch kann .....
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #5 am: 27.09.03 - 22:01:43 »

Das ist ja eben auch ein Punkt, warum Notes/Domino so sympatisch ist.
Klar, als Entwicker muss man das ausbaden mit der Rückwärtskompatibilität - aber damit kann man leben.

In der MS-Welt zittern die Entwickler bei jedem Releasewechsel, bei uns in der Notes-Welt kommen höchsten Freuden/Erwartungen hoch, ob denn nun endlich Punkt XY umgesetzt wurde im neuen Release  Grin

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

koehlerbv
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #6 am: 27.09.03 - 22:05:41 »

Nur spassenshalber noch eine Ergänzung:
Unsere heutigen Agents hiessen
- in R2 "Filter"
- in R3 "Macro"
- und ab R4 dann "Agent"

Und - auch wenn das leider völlig ohne Bedeutung ist - privat verwende ich als Textverarbeitung WordPro - das kann halt auch noch AmiPro lesen - und 1-2-3 als Tabellenkalkulation.

Aber - wie gesagt - das ist völlig ohne Bedeutung - leider. Und die Gründe kennen wir ja.

Ciao,
Bernhard
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #7 am: 30.09.03 - 21:07:57 »

WordPro kann auch noch WinWord V2 Dokumente lesen, man versuche das mal mit einer aktuellen Word-Version (oder richtigerweise wird man ja wohl Wort-Version sagen müssen, wenns eine deutsche Ausgabe ist :-)
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
Glombi
Gast
« Antworten #8 am: 30.09.03 - 21:12:44 »

Wozu Schleifen-Konstrukte wenn es If und Goto gibt ? Ist alles überflüssig.

Es lebe Fortran!

Andreas

P.S. Ist nicht ernst gemeint, liegt am Mond! Wink

Apropro Rückwärtskompatibilität: Ich sehe immer noch Anwendungen mit @V2if. Hat nette Effekte, denn es werden alle Conditions ausgeführt, die True sind, wenn ich mich recht 12 Jahre zurückerinnere.
« Letzte Änderung: 30.09.03 - 21:16:28 von Glombi » Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #9 am: 30.09.03 - 21:17:29 »

Dieser Mond heute .... na ja ..... Uebrigens, Fortran war Vorbild, als ca. 1960 Basic kreiert wurde. Damit quasi ururururururururAhn von LotusScript :-)
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
koehlerbv
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #10 am: 30.09.03 - 21:24:45 »

Da gabe ich ja was angerichtet mit dem guten, alten Mond.

Guckt Ihr hier:
http://www.sylence.net/mondphase/

Bernhard (der Physik / Astronomie studiert hat ...)
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #11 am: 30.09.03 - 21:28:35 »

Jaja, mit dem Mond hast Du was angerichtet ....... dabei wäre das doch eigentlich das Spezialgebiet von Luna
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
Glombi
Gast
« Antworten #12 am: 30.09.03 - 21:40:15 »

@Bernhard:
Stimmt es eigentlich, dass der Mond und die gute alte Erde so durch's All eiern, da der Mond früher (sehr viel früher) Teil der Erde war und durch eine Kollision mit einem Asteroiden abgespalten wurde?

Nur so am Rande der Interesse halber. Danach machen wir auch mit den Schleifen weiter...

Andreas
Gespeichert
koehlerbv
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #13 am: 30.09.03 - 22:02:23 »

Das ist eine These, aber eine der abwegigeren. Eher schon, daß sie sich aus der gemeinsamen "Ursuppe" gebildet haben.
Und: Eine grosse Masse fängt sich halt eben schon mal was ein, gelle ?

Ciao,
Bernhard
« Letzte Änderung: 30.09.03 - 22:44:00 von koehlerbv » Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #14 am: 30.09.03 - 22:24:11 »

Gilt eigentlich die Theorie noch vom Urknall?
Hielt sich ja vor ca. 10-15 Jahren immer noch sehr das Gerücht (ähm Hypothese) .... Eine Theorie gibt's ja afaik nicht, denn eine Theorie ist ja afaik was, was schon mal bewiesen wurde...(wenn ich in der Schule gut aufgepasst habe).
--------------

Na ja ich lass mich nicht abhalten, werde so nach und nach trotzdem die ein- oder andere Schleife noch hier beschreiben sobald ich dazu komme.

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #15 am: 30.09.03 - 22:45:57 »

Theorie? Und Bewiesen? Nö, umgegekehrt, wenns bewiesen ist, ists keine Theorie mehr sondern Wissen.

Das urprg. griechische Wort hat mit Sehen zu tun. Die Theoria ist eigentlich die Gesandschaft, also die Gruppe von staatlichen Botschaftern, die zu einem Orakel (bsp. Delphi) geschickt werden, um dort den göttlichen Willen zu erfragen. Sprich, die Theoria wird ausgeschickt, um "die Wahrheit zu sehen", also zu erforschen, was etwas zu bedeuten hat oder wie es ausgehen wird. Zuerst ist die Theoria, die zum Fragen geschickt wird, wenn sie zurück kommt, bringt sie das Wissen mit, und damit ist dann die Theoria erfüllt.
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
Glombi
Gast
« Antworten #16 am: 30.09.03 - 22:46:20 »

Zurück zum Thema:
Der große Unterschied zwischen der Do While und Do Until Schleife ist, dass bei
Do While die Bedingung am Anfang und bei
Do Until die Bedingung am Ende geprüft wird.
D.h. bei Do Until wird der Code der Schleife mindestens einmal ausgeführt.

Da wir Forall schon hatten: Das ist eine sehr einfache Möglichkeit, über alle Elemente eines Arrays oder einer Liste zu iterieren.

Ich verwende Do While... Loop (bzw. While .... Wend) immer, um durch NotesDocumentCollections zu iterieren:
Beispiel:

set dc = view.GetAllDocumentsByKey
set doc = dc.GetFirstDocument
do while not (doc is nothing)
   ...
  set doc = dc.GetNextDocument(doc)
loop

Hierbei sei noch erwähnt, dass derartiges keinesfalls mit einer For-Schleife und Get NthDocument(i) gemacht werden sollte, da das der absolute Performance-Killer ist!

Andreas
Gespeichert
koehlerbv
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #17 am: 30.09.03 - 22:46:30 »

Yippie, jetzt sind wir wieder bei den Schleifen ;-)  (Big Bang würde übrigens auch dazu gehören ;-)

TMC, wenn Du Hilfe brauchst für Deinen Beitrag, laß' wissen.
Vorschlag für das, was m.E. unbedingt 'rein muß: "Wie komme ich wieder 'raus?"

Bernhard (auf dem Weg ins Bett)
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #18 am: 30.09.03 - 22:53:18 »

Glombi, das stimmt aber nicht.

Sowhol Do while wie auch Do Until sind sogenannte kopfgesteuerte Schleifen: heisst, die Bedingung wird vor der Schleife geprüft, und die Schleife wird gegebenenfalls nicht ausgeführt. Der Unterschied ergibt sich aus der Wortbedeutung:

Do while: Tue solange
Die Schleife bricht ab,  sobald die Bedingung nicht mehr stimmt, oder wird nicht durchgeführt, wenn die Bedingung von Anfang an falsch ist.

Do until: Tue bis
Die Schleife bricht ab, sobald die Bedingung erfüllt ist, oder wird nicht ausgeführt, wenn die Bedingung von anfang an erfüllt ist.

Fussgesteuerte Schleifen haben die Bedingung beim loop:

Do
.....
loop while

oder

Do
.....
loop until

Diese Schlaufen werden also in jedem Falle einmal durchlaufen, egal wie die Bedingung ist. Dabei gilt für die Bedingung dasselbe wie oben:

Loop while: Drehe solange wie ....

Loop until: Drehe bis .....
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
Glombi
Gast
« Antworten #19 am: 30.09.03 - 22:58:45 »

@Semeaphoros:
Du hast natürlich recht!

Um diese Uhrzeit sollte ich besser nix mehr posten. Sorry!

Andreas (auch auf dem Weg ins Bett)
Gespeichert
Seiten: [1] 2 3 4 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: