Lotus Notes / Domino Sonstiges > Projekt Bereich

Welche Schleife wann in Script

<< < (9/16) > >>

TMC:

--- Zitat ---aber sieht oder wünscht jemand, dass man aus soetwas mit noch etwas mehr ein Thema machen würde für die Developer 2004 nächsten Februar?
--- Ende Zitat ---

Na ja, meine Meinung:
Ist wohl zusehr ein Spezialthema, als dass man das innerhalb 1 Stunde (?) mit 10-20 Powerpoint-Folien abhandeln könnte.
Klar, höchstens man würde die Quintessenz draus ziehen und Schwerpunkte setzen (kurzer Überblick, was killt Performance, und welche Schleifen decken die bekanntesten Fälle performant ab, etc.).

Insofern wäre das möglich. Sollte halt einige Highlights bieten (beim Überfliegen von Rob's Links hab ich gesehen da wäre durchaus was zu berichten).

Mein persönliches Fazit:
Würe eher "aus dem Ärmel herausschüttelnd" rüberkommen, ich schätze es gibt zig andere Themen, die Leute interessiert, wenn diese dafür viel Geld zahlen und von weit her anreisen.

TMC

Semeaphoros:
Sicher, da müsste noch was dazu, deshalb frage ich ja auch, wie die Wünsche sind. Performance könnte aber ein hübsches Thema abgeben und da sind nun mal die Schleifen auch eine wichtige Angelegenheit. Ich hab Robs Links noch nicht angesehen, werde das aber bestimmt tun und dann entscheiden, ob ich den Vorschlag unterbreiten soll.

TMC:
OK, hier mal ein aktuelles Problem von mir:

Do Until doc Is Nothing
Set nextdoc = dc.getnextdocument(doc)
   'Docwerte einlesen
   v_maske = doc.Form(0)
   v_freigabe = doc.Dat(0)
   'Wenn Maske nicht frm_12 und Freigabe leer, dann LOOP
   If v_maske Is Not "frm_12" & v_freigabe = "" Then
     Loop
   End If
   ...........
   .........
Loop


Hier will ich in der If-Abfrage die Schleife wieder von oben beginnen, also hab ich ein Loop reingesetzt, allerdings meckert da der Designer.
Daher die Frage: Wie kann man bei dieser Schleife in der Mitte wieder hochspringen, also den Loop mittendrin ausführen?

TMC

*Edit*
Ich habe das ganze jetzt über eine View-Selection gelöst ist aber auch nicht das wahre....
Siehe auch diesen Thread.

Axel_Janssen:

--- Zitat von: TMC am 03.10.03 - 18:06:12 ---OK, hier mal ein aktuelles Problem von mir:

Do Until doc Is Nothing
Set nextdoc = dc.getnextdocument(doc)
   'Docwerte einlesen
   v_maske = doc.Form(0)
   v_freigabe = doc.Dat(0)
   'Wenn Maske nicht frm_12 und Freigabe leer, dann LOOP
   If v_maske Is Not "frm_12" & v_freigabe = "" Then
     Loop
  End If
   ...........
   .........
Loop


--- Ende Zitat ---
Geht sowas in irgendeiner Programmiersprache? Ich glaube nicht.
Sagen wir mal eine Schleifenkonstrukt und ein Bedingungskonstrukt (sprachliche Anlehnung aus Begriffen von R. Mann) bestehen aus einem Kopf einem Rumpf und einem Endmarkierer (weiss nicht ob das jetzt so korrekt ist. V.a. Endmarkierer sieht wie eine spontane Entdeckung von mir aus).
Schleifenkonstrukt
Bedingungskonstrukt
Kopf
for i = 1 to 15 step 2
if i > 4 then
Rumpf
Alles was zwischen Kopf und Endmarkierer steht.
Alles was zwischen Kopf und Endmarkierer steht.
Endmarkierer (schliess-Tag für Kopf)
Loop
end if

xml 101: <tag/> = <tag></tag> (sogenannter empty-tag)

<kopf_a> Do Until doc Is Nothing
<rumpf_a/>   v_maske = doc.Form(0) [...] etc.
<kopf_b>   If v_maske Is Not "frm_12" & v_freigabe = "" Then
<rumpf_b/> == </kopf_a> Loop
</kopf_b>End If
</kopf_a>Loop


Die Rümpfe kannst du nicht einfach so "quer schachteln". Das geht nur ineinander nach dem Russischen Puppen Prinzip. Also jedes in einem Schleifenkonstrukt oder Verzweigungskonstrukt begonnene Schleifen- oder Verzweigungskonstrukt muß auch innerhalb des Schleifen oder Bedingungskonstrukt, in dem es geöffnet wurde, geschlossen werden. ;D

Du kannst doch einfach so was machen wie:
Do Until doc Is Nothing
Set nextdoc = dc.getnextdocument(doc)
   'Docwerte einlesen
   v_maske = doc.Form(0)
   v_freigabe = doc.Dat(0)
 
   rem genau umgekehrt
   If v_maske Is "frm_12" & v_freigabe <> "" Then  
...........
   .........
  End If
   Loop


Bei Schleifen kommen bei mir immer 2 Gedanken in den Kopf:
1. Muss ich das irgendwie kommentieren oder ist das selbsterklärend
2. Schreibe möglichst wenig Zeilen innerhalb des Schleifenrumpfs, weil es sonst unübersichtlich wird. Wenn nötig auslagern von code in Subroutinen oder Funktionen mit sprechenden Namen.

@Semaphoros: Ein wichtiges Thema für Performance sind nicht nur meiner Meinung nach Tools zum Aufspüren von Performance-Bottlenecks (Profiler oder ähnliches). Seitdem ich damit in Java arbeite, weiss ich das ich vorher nichts über Performance wusste. Und Kodierungspraktiken, die ein leichtes Aufspüren von Performance-Bottlenecks ermöglichen (sprich kein Spagetti-Code oder vielleicht besser Objekt-Orientierung.

In Eclipse wird man übrigens wg. so Dingen wie "wie ist nochmal die Schleifensyntax" nicht aus dem Büroschlaf gerissen. Da tippt man einfach for oder while ein, drückt Strg + Leertaste, wählt den Typ der Schleife aus (ich hab ein paar homegrown dabei) bekommt den code in den Editor mit schwer zu beschreibenen Textmarkierern, über die man dann die spezifischen Namen der Variablen eintippt. Geht alles völlig reibungslos ohne nervige popup-Boxen.  

Gruß Axel

TMC:
OK, danke Axel.
Das "genau umgekehrt" war die logische Konsequenz :)

Mich hat's nur generell interessiert und Du hast auch die Antwort dafür:

--- Zitat ---Geht sowas in irgendeiner Programmiersprache? Ich glaube nicht.
--- Ende Zitat ---
Ich wußte das bisher nicht, aber ist gut zu wissen  ;)


--- Zitat ---In Eclipse wird man übrigens wg. so Dingen wie "wie ist nochmal die Schleifensyntax" nicht aus dem Büroschlaf gerissen. Da tippt man einfach for oder while ein, drückt Strg + Leertaste, wählt den Typ der Schleife aus (ich hab ein paar homegrown dabei) bekommt den code in den Editor mit schwer zu beschreibenen Textmarkierern, über die man dann die spezifischen Namen der Variablen eintippt. Geht alles völlig reibungslos ohne nervige popup-Boxen
--- Ende Zitat ---
*neidisch rüberschauend zu den Eclipse-Jungs*

Wie auch immer, danke für die Tipps Axel.

TMC

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln