Lotus Notes / Domino Sonstiges > Projekt Bereich

Welche Schleife wann in Script

<< < (7/16) > >>

Semeaphoros:
Zu meinem oben genannten Problem mit loop innerhalb einer Forall-Schleife: da war der Fehler zwischen Tastatur und Rückenlehne zu suchen. In der Hitze des Gefechtes hat mir wohl eine andere der run ein Dutzend Programmiersprachen, die ich kenne, einen Streich gespielt und ich hab versucht den Do -- Loop mit dem Keyword Loop einzuleiten .... typisch, wenn man im Gehetz rasch noch eine Korrektur machen muss ....

Experimentieren in Ruhe ergab dann, dass Lotusscript problemlos und korrekt Schlaufen verschachteln kann.

Sorry für die Fehlmeldung

Semeaphoros:
Zwei weitere Punkte, die irgendwie Aufnahme oder Ergänzung verdienen:

1:
Wie Bernhard schon angedeutet hat, der Ausstieg aus der Schlaife (hehe, der sprachliche Kompromiss :-) sollte besonders hervorgehoben werden: Sprich, man sollte sich jederzeit bewusst sein, welches die Abbruchbedingung ist und ob sie überhaupt erreicht werden kann (in der theor. Informatik ist das dann eine Frage der Korrektheit des Programmes).

2:
Ein ganz besonderer Hinweis, welche die gestellte Frage "Welche Schleife ..." ein wenig auf die "philosophische" Seite bringt: Bis zu einem grossen Teil ist die Wahl der Schleife eine Frage des Geschmacks, der Gewohnheiten und vielleicht auch eine  Frage, wie gut der Compiler welche Schleife zu übersetzen mag (also schliessclich eine Frage von Effizienz des Codes und Performance). Es lässt sich schliesslich zeigen, dass fast alle Schlaufen sich logisch in fast jede andere Sorte von Schleife umsetzen lassen. Ein For-Next Loop lässt sich ohne weiteres durch eine While-Wend (und damit durch gleichbedeutend do while -- loop) ersetzen usw. usw. Als mir gestern das Einsetzen eines do --- loop until nicht gelungen ist, hab ich es kurzerhand durch ein weniger elegantes (im gegebenen Fall) while --- wend ersetzt, also selbst fussgesteuerte Schlaufen lassen sich durch kopfgesteurte Schleifen ersetzen. Etwa so:

Ich wollte:
ExitFlag=False
Do
Rem ....... hier der produktive Code, der irgndwo das Exitflag auf True setzt und damit die Abbruchbedingung gibt
loop until ExitFlag

Ersetzt durch
ExitFlag=False
While (Not ExitFlag)
Rem ....... hier der produktive Code, der irgndwo das Exitflag auf True setzt und damit die Abbruchbedingung gibt
Wend


Ok, ok, eingefleischte C-Leute (und andere) würden da natürlich sowieso mit einem Do --- loop und einem Exit Loop arbeiten, das wiederum wäre aber ein gravierender Verstoss gegen die ursprünglichen Grundregeln der strukturierten Programmierung.

PS: Ich hab versucht, diesmal allen Sprachregionen gerecht zu werden und die Schlaifen etwa gleichmässig auf den Text verteilt ....... :-)))

Rob Green:
Zwischenfrage: habt ihr noch vor, zur Perfomance der Schleifen etwas zu sagen? Sonst kram ich in einigen Blogs herum, wann man unter Perfomance Gesichtspunkten welche Schleife in Lotus Notes nehmen sollte. Gibt so 3-4 Untersuchungen, und wenn mich nicht alles täuscht in einer Notes PDF Datei, dessen  Titel ich nicht genau weiß (kann Inside Notes sein, muß aber nicht).

koehlerbv:
Performance wäre eine hochinteressante Frage! Das könnten wir ja auch mit eigenen Messungen untermauern.
Jetzt kommen wir aber ggf. vom Hundertsten in Tausendste (warum aber auch nicht), denn innerhalb der Schleife könnte ja sowas wie
Set doc = coll.GetNthDocument (iLoop) vorkommen,
was ja bei grossen Collections der absolute Performancekiller ist.
Sollte man vielleicht mit erwähnen.

Bernhard

TMC:
Hey, prima, da tut sich ja echt was  ;D

Dank Euch allen für die Unterstützung. Werde alles noch einbauen in die Doku.

@Rob: das wäre prima wenn Du da was hast.

Meinetwegen wird das Word-Doc (bzw. wenn fertig PDF) zu Schleifen auch 100 Seiten dick, solange alles übersichtlich bleibt.
Die Schleifen können ja in Kap. 1 nur kurz und knapp erklärt werden mit 1 Beispiel, und ab Kap. 2 gehts dann in die Tiefe.....
Na ja mal schauen....

Grüße,
TMC

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln