Tom: while-schleife

Beitrag lesen

Hello Steffi,

ich habe ein Problem mit der while-Schleife

zusätzlich zu dem von Gunnar bereits geposteten Endprodukt musst Du vielleicht noch wissen, wie man diese Ausgabe erzeugt. Das Ganze nennt man "Gruppenwechsel". Unter diesem Stichwort findest Du in der Literatur der elektrischen/elektronischen Datenverarbeitung ausreichend Beiträge.

Im Prinzip funktioniert ein Gruppenwechsel so:

Merke Dir die aktuelle Gruppe in einer Variable
Gib solange die Gruppenmitglieder aus, wie die Gruppe dieselbe ist, wie die gemerkte
Wechselt die Gruppe, dann gib zuerst den Gruppenfuß zur vorigen Gruppe aus.
Dann merke Dir die neue Gruppe.
Dann gib den Gruppenkopf zur neuen Gruppe aus.
Am Ende gib noch den Gruppenfuß zur letzten Gruppe aus.

Formulare für gruppierte Auflistungen waren früher i.d.R folgendermaßen aufgebaut:

Seitenkopf
  Gruppenkopf
     Gruppenmitglied
     Gruppenmitglied
     Gruppenmitglied
  Gruppenfuß

Gruppenkopf
     Gruppenmitglied
     Gruppenmitglied
     Gruppenmitglied
  Gruppenfuß

...
Seitenfuß

Wenn Du das mal vergleichst mit Gunnars HTML-Auszeichnung, dann kann man da einige Ähnlichkeiten feststellen.

Das Problem ist, dass es auch Sprünge geben kann in der Einrückung. Die müssen im Markup auch berücksichtigt werden. Dazu musst Du die alte und die neue Einrückungstiefe feststellen und nur SCHRITTWEISE von der vorigen auf die nächste gewünschte erhöhen. Also wenn ein Sprung von 1.2.3 zurück auf 2. existiert, dann musst Du zunächst die Abschlussaktionen für den Schritt von 1.2.3 auf 1.2. vornehmen, dann die Aktionen für den Schritt von 1.2. auf 1. und dann erst die Aktion für den Schritt von 1. auf 2.

Ich denke, es ist am besten, Du baust Dir für jede Aktion (Erhöhung der Einrückungstiefe, Verringerung der Einrückungstiefe) eine kleine Funktion, die Du dann nur noch mit dem passenden Parameter aufrufen musst.

Liebe Grüße aus dem sonnigen Süden

Tom vom Berg, noch auf Reisen

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de