diff options
Diffstat (limited to 'menugenerator')
| -rw-r--r-- | menugenerator/Generatordatei: Archivmenu | 323 | ||||
| -rw-r--r-- | menugenerator/fonttab.ls-Menu-Generator | bin | 2560 -> 0 bytes | |||
| -rw-r--r-- | menugenerator/ls-MENUBASISTEXTE | bin | 17408 -> 0 bytes | |||
| -rw-r--r-- | menugenerator/ls-Menu-Generator 1 | 376 | ||||
| -rw-r--r-- | menugenerator/ls-Menu-Generator 2 | 698 | ||||
| -rw-r--r-- | menugenerator/ls-Menu-Generator-gen | 112 | 
6 files changed, 0 insertions, 1509 deletions
| diff --git a/menugenerator/Generatordatei: Archivmenu b/menugenerator/Generatordatei: Archivmenu deleted file mode 100644 index 76393fc..0000000 --- a/menugenerator/Generatordatei: Archivmenu +++ /dev/null @@ -1,323 +0,0 @@ -(*  -         -          *********************************************************  -          *********************************************************  -          **                                                     **  -          **                      ls-ARCHIV-                     **  -          **                 MENUTAFEL-GENERATOR                 **  -          **                     Version 1.0                     **  -          **                                                     **  -          **                  (Stand: 30.03.88)                  **  -          **                                                     **  -          **                                                     **  -          **         Autor: Wolfgang Weber, Bielefeld            **  -          **                                                     **  -          **                                                     **  -          ** Copyright (C) 1987, 1988 Eva Latta-Weber, Bielefeld **  -          **                                                     **  -          ** Copyright (C) 1988 ERGOS GmbH, Siegburg             **  -          **                                                     **  -          *********************************************************  -          *********************************************************  -  -                                                                           *)  -  -TEXT PROC dateiverzeichnistext:  -   "      "15" Verzeichnis der vorhandenen Dateien "14""13""13""  - + " Eine Liste  der vorhandenen Dateien wird  auf dem "13""  - + " Bildschirm ausgegeben.                            "13""13""  - + " Da die Liste selbst eine Datei ist,  kann man sie "13""  - + " mit  der  Tastenfolge <ESC> <q> verlassen  -  das "13""  - + " wird auch in der Kopfzeile angezeigt.             "13""13""  - + " Innerhalb  der Liste kann man  sich wie  in einer "13""  - + " Datei bewegen - nicht aber schreiben."  -END PROC dateiverzeichnistext;  -  -TEXT PROC dateiloeschentext:  -   "                 "15" Dateien löschen "14"             "13""13""  - + " Alle vorhandenen  Dateien werden zur  Auswahl angebo- "13""  - + " ten.  Anschließend werden die angekreuzten Dateien in "13""  - + " der Reihenfolge,  in der sie  angekreuzt wurden,  ge- "13""  - + " löscht.                                               "13""13""  - + " Zur Sicherheit muß noch einmal für jede  einzelne Da- "13""  - + " tei  bestätigt werden,  daß sie auch  tatsächlich ge- "13""  - + " löscht werden soll!"  -END PROC dateiloeschentext;  -  -TEXT PROC dateidruckentext:  -   "                 "15" Dateien drucken "14"           "13""13""  - + " Alle vorhandenen Dateien werden zur Auswahl angebo- "13""  - + " ten.  Anschließend werden die  angekreuzten Dateien "13""  - + " in  der Reihenfolge,  in der sie angekreuzt wurden, "13""  - + " zum Drucker geschickt.                              "13""13""  - + " Der Vorgang wird auf dem Bildschirm protokolliert."  -END PROC dateidruckentext;  -  -TEXT PROC dateikopierentext:  -   "                      "15" Datei kopieren "14"               "13""13""  - + " Der Dateiname der Datei, die kopiert werden soll,  wird er- "13""  - + " fragt. Hier kann direkt ein Name eingegeben werden. Mit der "13""  - + " Tastenfolge <ESC><z> kann man sich auch die vorhandenen Da- "13""  - + " teien zur Auswahl anbieten lassen und hier einen  Namen an- "13""  - + " kreuzen. Anschließend wird der Name für die Kopie erfragt.  "13""13""  - + " Es muß ein Name eingetragen werden, der noch nicht für eine "13""  - + " Datei vergeben wurde  -  ansonsten erfolgt ein  Hinweis da- "13""  - + " rauf und es wird nicht kopiert!                             "13""  - + " Da man aber oft für die Kopie einen ähnlichen Namen wie für "13""  - + " das Original wählt, wird der 'alte' Name vorgeschlagen. Aus "13""  - + " genannten Gründen muß er aber verändert werden."  -END PROC dateikopierentext;  -  -TEXT PROC dateiumbenennentext:  -   "                      "15" Datei umbenennen "14"               "13""13""  - + " Der Dateiname der Datei,  die umbenannt werden soll, wird er- "13""  - + " fragt.  Hier kann direkt ein Name eingegeben werden.  Mit der "13""  - + " Tastenfolge  <ESC><z>  kann man sich auch die vorhandenen Da- "13""  - + " teien zur  Auswahl anbieten lassen  und dort einen  Namen an- "13""  - + " kreuzen. Anschließend wird der zukünftige Dateiname erfragt.  "13""13""  - + " Es muß ein Name eingetragen werden,  der noch  nicht für eine "13""  - + " Datei vergeben wurde  -  ansonsten erfolgt ein Hinweis und es "13""  - + " wird nicht umbenannt!                                         "13""  - + " Da man aber oft den 'neuen' Namen in Anlehnung an den 'alten' "13""  - + " Namen wählt, wird der 'alte' Name vorgeschlagen.  Aus genann- "13""  - + " ten Gründen muß er aber verändert werden."  -END PROC dateiumbenennentext;  -  -TEXT PROC dateispeicherplatztext:  -   "            "15" Datei-Speicherplatz ermitteln "14"     "13""13""  - + " Der Dateiname der Datei, deren Speicherplatz ermittelt "13""  - + " werden soll, wird erfragt.  Hier kann direkt ein  Name "13""  - + " eingegeben werden.  Mit der Tastenfolge  <ESC><z> kann "13""  - + " man sich auch die  vorhandenen Dateien zur Auswahl an- "13""  - + " bieten lassen und dort Namen ankreuzen.                "13""13""  - + " Der  belegte  Speicherplatz der ausgewählten Datei(en) "13""  - + " wird ermittelt und auf dem Bildschirm angezeigt."  -END PROC dateispeicherplatztext;  -  -TEXT PROC dateiaufraeumtext:  -   "           "15" Dateien aufräumen (reorganisieren) "14"   "13""13""  - + " Der Dateiname der Datei,  die aufgeräumt (reorganisiert) "13""  - + " werden soll,  wird erfragt.  Hier kann  direkt ein  Name "13""  - + " eingegeben werden. Mit der Tastenfolge <ESC><z> kann man "13""  - + " sich auch die  vorhandenen  Dateien zur Auswahl anbieten "13""  - + " lassen und dort Namen ankreuzen.                         "13""13""  - + " Anschließend werden die ausgewählten Dateien aufgeräumt, "13""  - + " d.h. die  interne  Verwaltung  der Datei wird optimiert. "13""  - + " Das führt zumeist dazu, daß die Datei anschließend weni- "13""  - + " ger Speicherplatz belegt als zuvor.                      "13""13""  - + " "15"Achtung! "14" Die Operation ist zeitaufwendig!!!"  -END PROC dateiaufraeumtext;  -  -  -(*------------------------------------------------------------------------*)  -  -  -  -TEXT PROC archivreserviertext:  -   "                 "15"Reservieren (des Archivlaufwerks) "14"    "13""13""  - + " Das System versucht,  auf das Archiv zuzugreifen.  Ist das Archiv "13""  - + " von keiner anderen Task benutzt, dann wird die Frage gestellt, ob "13""  - + " die Diskette eingelegt ist.  Erst zu diesem Zeitpunkt ist sicher- "13""  - + " gestellt, daß keine andere Task auf das Archiv zugreifen kann!"13""13""  - + " Nach  Bejahen der gestellten Frage ermittelt das System selbstän- "13""  - + " dig den Namen der  eingelegten Diskette,  zeigt den Namen auf dem "13""  - + " Bildschirm an und aktiviert die anderen Menupunkte des Pull-Down- "13""  - + " Menus.                                                        "13""13""  - + " Beim Verlassen des Pull-Down-Menus oder wenn eine andere Zieltask "13""  - + " eingestellt wird, wird die Reservierung automatisch aufgehoben!"  -END PROC archivreserviertext;  -  -TEXT PROC neuediskettetext:  -   "                   "15"Neue Diskette (anmelden) "14"           "13""13""  - + " Der Datenaustausch mit einer Diskette ist nur dann möglich,  wenn "13""  - + " der  im System  eingestellte  Diskettenname  (auf dem  Bildschirm "13""  - + " sichtbar) mit dem tatsächlichen Namen der Diskette übereinstimmt. "13""13""  - + " Nach einem  Diskettenwechsel ist das aber  zumeist nicht mehr der "13""  - + " Fall.  Nach Aktivieren  dieses Menupunktes wird der Name der ein- "13""  - + " gelegten Diskette ermittelt, im System eingestellt und angezeigt. "13""13""  - + " Im Gegensatz zum Menupunkt  'Reservieren'  greift das System ohne "13""  - + " Anfrage  an den  Benutzer  auf  das Archiv zu  (die  Reservierung "13""  - + " bleibt ja bestehen)."  -END PROC neue diskettetext;  -  -TEXT PROC archivschreibtext:  -   "                       "15"Schreiben (Kopieren) "14"           "13""13""  - + " Alle Dateien der  eigenen Task werden zur Auswahl angeboten.  An- "13""  - + " schließend werden Kopien der angekreuzten  Dateien in der Reihen- "13""  - + " folge  ihres Ankreuzens in die  eingestellte  Zieltask geschickt. "13""  - + " Der Vorgang wird auf dem Bildschirm protokolliert.            "13""13""  - + " Sind in der Zieltask schon Dateien mit  gleichem Namen vorhanden, "13""  - + " so wird erfragt, ob diese dort gelöscht werden sollen.        "13""13""  - + " Normalerweise ist als  Zieltask  das  Archiv der  eigenen Station "13""  - + " eingestellt. Mit dem Menupunkt  'Zieltask einstellen'  kann diese "13""  - + " Einstellung verändert werden."  -END PROC archivschreibtext;  -  -TEXT PROC archivchecktext:  -   "                      "15"Checken (Prüfen) "14"          "13""13""  - + " Alle Dateien der eingestellten  Zieltask (des Archivs) wer- "13""  - + " den zur  Auswahl angeboten.  Anschließend werden  die ange- "13""  - + " kreuzten  Dateien in der Reihenfolge ihres Ankreuzens  'ge- "13""  - + " checkt', d.h. daraufhin untersucht,  ob sie ohne Fehler ge- "13""  - + " lesen  werden können.  Der Vorgang wird auf dem  Bildschirm "13""  - + " protokolliert.                                          "13""13""  - + " Dieser Menupunkt kann  nur ausgeführt werden,  wenn der Da- "13""  - + " teiaustausch mit einem Archiv(manager) erfolgt."  -END PROC archivchecktext;  -  -TEXT PROC archivkombinationstext:  -   "                        "15"Kombination "14"                   "13""13""  - + " Dieser  Menupunkt wirkt wie eine  Kombination  der Menupunkte "13""  - + " 'Schreiben' und 'Checken' (Weitere Informationen dort).       "13""13""  - + " Alle Dateien  der eigenen Task werden  zur Auswahl angeboten. "13""  - + " Die angekreuzten Dateien werden in  der Reihenfolge ihres An- "13""  - + " kreuzens in die eingestellte  Zieltask kopiert.  Anschließend "13""  - + " werden alle Dateien, die gerade geschrieben wurden, gecheckt, "13""  - + " d.h. auf Lesefehler hin untersucht. Beide Vorgänge werden auf "13""  - + " dem Bildschirm protokolliert.                                 "13""13""  - + " Dieser Menupunkt kann nur ausgeführt werden,  wenn der Datei- "13""  - + " austausch mit einem Archiv(manager) erfolgt. "  -END PROC archivkombinationstext;  -  -  -TEXT PROC archivholtext:  -   "                          "15"Holen / Lesen "14"               "13""13""  - + " Alle Dateien der eingestellten  Zieltask werden zur Auswahl ange- "13""  - + " boten. Anschließend werden Kopien der angekreuzten Dateien in der "13""  - + " Reihenfolge  des Ankreuzens in die eigene Task kopiert.  Der Vor- "13""  - + " gang wird auf dem Bildschirm protokolliert.                   "13""13""  - + " Sind in der eigenen Task schon Dateien mit gleichem Namen vorhan- "13""  - + " den, so wird gefragt,  ob die 'alten' Dateien  überschrieben (ge- "13""  - + " löscht) werden dürfen.                                        "13""13""  - + " Normalerweise werden  die Dateien vom  Archiv der eigenen Station "13""  - + " geholt.  Mit dem Menupunkt  'Zieltask einstellen' kann diese Ein- "13""  - + " stellung verändert werden."  -END PROC archivholtext;  -  -  -TEXT PROC archivloeschtext:  -   "                         "15"Löschen "14"               "13""13""  - + " Alle Dateien der eingestellten Zieltask werden zur Auswahl "13""  - + " angeboten. Anschließend werden die angekreuzten Dateien in "13""  - + " der Reihenfolge ihres Ankreuzens gelöscht.  Zur Sicherheit "13""  - + " muß noch einmal für jede  einzelne Datei bestätigt werden, "13""  - + " daß sie auch tatsächlich gelöscht werden soll.         "13""13""  - + " Normalerweise ist als Zieltask das Archiv der eigenen Sta- "13""  - + " tion eingestellt. Mit dem Menupunkt  'Zieltask einstellen' "13""  - + " kann diese Einstellung verändert werden."  -END PROC archivloeschtext;  -  -TEXT PROC archivverzeichnistext:  -   "                      "15"Verzeichnis "14"           "13""13""  - + " Eine Liste aller Dateien, die in der Zieltask vorhanden "13""  - + " sind, wird auf dem Bildschirm ausgegeben. Ist die Ziel- "13""  - + " task ein Archiv (manager), so wird auch angezeigt, wie- "13""  - + " viel Platz auf der Diskette belegt ist.             "13""13""  - + " Da die Liste selbt eine Datei ist, kann man sie mit der "13""  - + " Tastenfolge  <ESC> <q>  verlassen.  Innerhalb der Liste "13""  - + " kann man sich wie im Editor bewegen."  -END PROC archivverzeichnistext;  -  -TEXT PROC archivdruckentext:  -   "                     "15"Drucken "14"           "13""13""  - + " Zur Sicherheit fragt das System an,  ob ein Datei- "13""  - + " verzeichnis der Zieltask gedruckt werden soll. Be- "13""  - + " jaht man diese Frage, so wird ein Dateiverzeichnis "13""  - + " erstellt und zum Drucker geschickt."  -END PROC archivdruckentext;  -  -TEXT PROC archivinitialisiertext:  -   "             "15"Initialisieren (Vollständiges Löschen) "14"   "13""13""  - + " Zunächst erfragt das System, ob die Diskette auch formatiert wer- "13""  - + " den soll.  Bejaht man  die Frage,  so werden  mehrere Formate zur "13""  - + " Auswahl angeboten  -  anschließend wird die  Diskette  formatiert "13""  - + " (wobei alle Inhalte "15"gelöscht "14" werden). Das Formatieren ist not-"13""  - + " wendig, wenn man eine 'frische' Diskette verwendet.           "13""13""  - + " In jedem Fall wird dann angefragt,  ob die Diskette initialisiert "13""  - + " bzw. überschrieben werden soll (je nachdem, ob die Diskette schon "13""  - + " benutzt wurde oder nicht). Nach Bejahen der gestellten Frage wird "13""  - + " der Name der Diskette erfragt. Bei der Initialisierung erhält die "13""  - + " Diskette einen (neuen) Namen und wird "15"vollständig gelöscht."14" "13""  -END PROC archivinitialisiertext;  -  -TEXT PROC archivzieltasktext:  -   "                      "15"Zieltask einstellen "14"             "13""13""  - + " Das System bietet die Alternativen  'Archiv'-'Vatertask'-'PUBLIC' "13""  - + " und 'Sonstige' zur Auswahl an. Bei der Wahl einer der ersten drei "13""  - + " Möglichkeiten nimmt das System die vollständige  Einstellung vor, "13""  - + " zeigt den Namen der eingestellten  Zieltask an und  aktiviert die "13""  - + " zur Verfügung stehenden Menupunkte.                           "13""13""  - + " Als Zieltask kann aber im Prinzip auch jede andere empfangsberei- "13""  - + " te Task auf der Station oder irgendwo im Netz  (wenn installiert) "13""  - + " gewählt werden.  Dazu wählt man die Alternative 'Sonstige'. Nach- "13""  - + " einander werden der Name der Task und die Stationsnummer erfragt. "13""  - + " Danach wird erfragt, ob die Zieltask ein Archiv(manager) ist. An- "13""  - + " schließend verfährt das System wie oben beschrieben."  -END PROC archivzieltasktext;  -  -  -  -  -  -  -  -  -  -oeffne menukarte ("Archiv");  -  -oeffne menu   ("ARCHIV", "", "menu archiv reservierung aufgeben");  -  -oberbegriff   ("Dateien");  -                                             -menufunktion  ("v", "Verzeichnis",          "menu dateien verzeichnis",  -                                            dateiverzeichnistext);  -trennlinie;                                  -menufunktion  ("l", "Löschen",              "menu dateien loeschen",  -                                            dateiloeschentext);  -menufunktion  ("d", "Drucken",              "menu dateien drucken",  -                                            dateidruckentext);  -trennlinie;                                  -menufunktion  ("k", "Kopieren",             "menu dateien kopieren",  -                                            dateikopierentext);  -menufunktion  ("u", "Umbenennen",           "menu dateien umbenennen",  -                                            dateiumbenennentext);  -trennlinie;                                  -menufunktion  ("s", "Speicherplatz",        "menu dateien speicherplatz",  -                                            dateispeicherplatztext);  -menufunktion  ("a", "Aufräumen",            "menu dateien aufraeumen",  -                                            dateiaufraeumtext);  -  -  -  -oberbegriff   ("Archiv", "menu archiv grundeinstellung (4)",  -                         "menu archiv reservierung aufgeben");  -  -menufunktion  ("r", "Reservieren",          "menu archiv reservieren",  -                                            archivreserviertext);  -menufunktion  ("n", "Neue Diskette",        "menu archiv neue diskette",  -                                            neuediskettetext);  -trennlinie;  -menufunktion  ("s", "Schreiben",            "menu archiv schreiben",  -                                            archivschreibtext);  -menufunktion  ("c", "Checken",              "menu archiv checken",  -                                            archivchecktext);  -menufunktion  ("k", "Kombination",          "menu archiv schreibcheck",  -                                            archivkombinationstext);  -menufunktion  ("h", "Holen/Lesen",          "menu archiv holen",  -                                            archivholtext);  -menufunktion  ("l", "Löschen",              "menu archiv loeschen",  -                                            archivloeschtext);  -trennlinie;                             -menufunktion  ("v", "Verzeichnis",          "menu archiv verzeichnis",  -                                            archivverzeichnistext);  -menufunktion  ("d", "Drucken",              "menu archiv verzeichnis drucken",  -                                            archivdruckentext);  -trennlinie;                                    -menufunktion  ("i", "Initialisieren",       "menu archivinitialisieren",  -                                            archivinitialisiertext);  -menufunktion  ("z", "Zieltask einstellen",  "menu archiv zieltask einstellen",  -                                            archivzieltasktext);  -schliesse menu;  -schliesse menukarte;  - - diff --git a/menugenerator/fonttab.ls-Menu-Generator b/menugenerator/fonttab.ls-Menu-GeneratorBinary files differ deleted file mode 100644 index a5fd613..0000000 --- a/menugenerator/fonttab.ls-Menu-Generator +++ /dev/null diff --git a/menugenerator/ls-MENUBASISTEXTE b/menugenerator/ls-MENUBASISTEXTEBinary files differ deleted file mode 100644 index 48ef277..0000000 --- a/menugenerator/ls-MENUBASISTEXTE +++ /dev/null diff --git a/menugenerator/ls-Menu-Generator 1 b/menugenerator/ls-Menu-Generator 1 deleted file mode 100644 index 4dea777..0000000 --- a/menugenerator/ls-Menu-Generator 1 +++ /dev/null @@ -1,376 +0,0 @@ -(*  -         -          *********************************************************  -          *********************************************************  -          **                                                     **  -          **                 ls-Menu-Generator 1                 **  -          **                                                     **  -          **                     Version 1.0                     **  -          **                                                     **  -          **                  (Stand: 30.03.88)                  **  -          **                                                     **  -          **                                                     **  -          **         Autor: Wolfgang Weber, Bielefeld            **  -          **                                                     **  -          **                                                     **  -          ** Copyright (C) 1987, 1988 Eva Latta-Weber, Bielefeld **  -          **                                                     **  -          ** Copyright (C) 1988 ERGOS GmbH, Siegburg             **  -          **                                                     **  -          *********************************************************  -          *********************************************************  -  -                                                                           *)  -  -PACKET ls menu generator 1 DEFINES -       textprozedur, -       textzeile: -LET maxzeilenzahl     =   14, -    maxzeichenzahl    =   65, -    zentrierkennung   =  "%", -    beginmarkkennung  =  "$", -    endmarkkennung    =  "&", -    unblockkennung    =  "�", -    blank             =  " ", -    dateikennung      = ".a"; -LET dateieintrag      = "#type (""10"")##limit (16.5)#", -    stdfonttabelle    = "fonttab.ls-Menu-Generator"; -ROW 3 TEXT CONST fehlermeldung :: ROW 3 TEXT : ( -"existiert nicht!", - -""15"Text ist zu lang - bitte kürzen! "14"", -""15"Zeilenformatierung mit <ESC> abgebrochen! "14"" -); -ROW 6 TEXT CONST hinweis :: ROW 6 TEXT : ( -"Bitte warten ...", -"Zulässige    Zeilenzahl: ", -"Tatsächliche Zeilenzahl: ", -"Textlänge ist in Ordnung!", -"Textprozedur ist erstellt!", -"Textzeile ist erstellt!" -); -PROC textprozedur (TEXT CONST dateiname, prozedurname): -  BOOL VAR mit fehler; -  formatiere (dateiname, mit fehler); -  IF mit fehler -     THEN errorstop (fehlermeldung [3]) -  FI; - -  bereite den text auf (dateiname); -  erzeuge textprozedur (dateiname, prozedurname); -  out (""7""); out (hinweis [5]); -  last param (dateiname + dateikennung) -END PROC textprozedur; -PROC textzeile (TEXT CONST dateiname): -  BOOL VAR mit fehler; -  formatiere (dateiname, mit fehler); -  IF mit fehler -     THEN errorstop (fehlermeldung [3]) -  FI; -  bereite den text auf (dateiname); -  erzeuge textzeile    (dateiname); -  out (""7""); out (hinweis [6]); -  last param (dateiname + dateikennung) - -END PROC textzeile; -PROC gib wartehinweis: -  page; -  out (hinweis [1]) -END PROC gib wartehinweis; -PROC formatiere (TEXT CONST dateiname, BOOL VAR mit fehler): -  TEXT VAR fonttabelle, zeileninhalt; -  kontrolliere existenz; -  stelle fonttabelle ein; -  schreibe font in die datei; -  zeilenformatierung; -  entferne ggf font aus der datei; -  stelle fonttabelle zurueck; -  streiche restleerzeilen weg; -  untersuche ggf datei auf korrektheit. -  kontrolliere existenz: -    IF NOT exists (dateiname) - -       THEN page; errorstop ("'" + dateiname + "' " + fehlermeldung [1]) -    FI. -  stelle fonttabelle ein: -    gib wartehinweis; -    fonttabelle := fonttable; -    fonttable (stdfonttabelle). -  schreibe font in die datei: -    FILE VAR datei :: sequential file (modify, dateiname); -    to line (datei, 1); -    insert record (datei); -    write record (datei, dateieintrag + blank). -  zeilenformatierung: -    disable stop; -    lineform (dateiname); -    IF is error -       THEN clear error; - -            mit fehler := TRUE -       ELSE mit fehler := FALSE -    FI; -    enable stop. -  entferne ggf font aus der datei: -    to line (datei, 1); -    read record (datei, zeileninhalt); -    IF pos (zeileninhalt, dateieintrag) > 0 -       THEN delete record (datei) -    FI. -  stelle fonttabelle zurueck: -    fonttable (fonttabelle). -  streiche restleerzeilen weg: -    REP -      streiche ggf letzte zeile -    UNTIL zeile ist nicht leer PER. -  streiche ggf letzte zeile: -    to line (datei, lines (datei)); - -    read record (datei, zeileninhalt); -    IF compress (zeileninhalt) = "" -       THEN delete record (datei) -    FI. -  zeile ist nicht leer: -    compress (zeileninhalt) <> "". -  untersuche ggf datei auf korrektheit: -    IF NOT mit fehler -       THEN untersuche zeilenzahl -    FI. -  untersuche zeilenzahl: -    IF lines (datei) > maxzeilenzahl -       THEN page; -            out (hinweis [2] + text (maxzeilenzahl)); line; -            out (hinweis [3] + text (lines (datei))); line (2); -            errorstop (fehlermeldung [2]) - -       ELSE page; -            out (hinweis [4]) -    FI. -END PROC formatiere; -PROC bereite den text auf (TEXT CONST dateiname): -  INT  VAR zaehler; -  TEXT VAR zeileninhalt; -  FILE VAR f :: sequential file (modify, dateiname); -  gib wartehinweis; -  vernichte ggf aufbereitete datei; -  richte datei neu ein; -  uebertrage die zeilen. -  vernichte ggf aufbereitete datei: -    IF exists (dateiname + dateikennung) -       THEN forget (dateiname + dateikennung, quiet) -    FI. -  richte datei neu ein: - -    FILE VAR aus :: sequential file (output, dateiname + dateikennung). -  uebertrage die zeilen: -    FOR zaehler FROM 1 UPTO lines (f) REP -      bereite eine zeile auf -    PER. -  bereite eine zeile auf: -    to line (f, zaehler); -    read record (f, zeileninhalt); -    ersetze alle gaensefuesschen; -    haenge ggf absatzmarke an; -    behandle zeile; -    putline (aus, zeileninhalt). -  ersetze alle gaensefuesschen: -    change all (zeileninhalt, """", "'"). -  haenge ggf absatzmarke an: -    IF (zeileninhalt SUB (length (zeileninhalt))) = blank - -       THEN IF (zeileninhalt SUB 1) <> zentrierkennung -               THEN zeileninhalt CAT unblockkennung -            FI -    FI. -  behandle zeile: -    IF   zeile soll zentriert werden -         THEN zentriere zeile -    ELIF zeile ist leerzeile -         THEN kennzeichne leerzeile -    ELSE blocke zeile auf stdlaenge -    FI. -  zeile soll zentriert werden: -    (zeileninhalt SUB 1) = zentrierkennung. -  zeile ist leerzeile: -    compress (zeileninhalt) = "". -  zentriere zeile: -    zeileninhalt := subtext (zeileninhalt, 2); - -    zeileninhalt := anfangsblanks + zeileninhalt; -    zeilenabschluss. -  anfangsblanks: -    ((maxzeichenzahl - length (zeileninhalt)) DIV 2) * blank. -  zeilenabschluss: -    ersetze markierungszeichen; -    setze 13. -  ersetze markierungszeichen: -    change all (zeileninhalt, beginmarkkennung, """15"""); -    change all (zeileninhalt, endmarkkennung,    """14"""). -  setze 13: -    zeileninhalt CAT " ""13""". -  kennzeichne leerzeile: -    zeileninhalt := """13""". -  blocke zeile auf stdlaenge: - -    IF zeile darf nicht geblockt werden -       THEN ersetze endezeichen -       ELSE fuehre blockung aus -    FI. -  zeile darf nicht geblockt werden: -    (zeileninhalt SUB length (zeileninhalt)) = unblockkennung. -  ersetze endezeichen: -    zeileninhalt := subtext (zeileninhalt, 1, length (zeileninhalt) - 1); -    ersetze markierungszeichen; -    setze 13. -  fuehre blockung aus: -    ROW maxzeichenzahl INT VAR leerzeichen; -    INT VAR gezaehlte blanks, zu verteilende blanks; -    ordne anfangswerte zu; - -    verteile blanks gleichmaessig; -    verteile blanks zufaellig; -    baue zeile zusammen; -    ersetze markierungszeichen; -    setze 13. -  ordne anfangswerte zu: -    bestimme blankanzahl in der zeile; -    bestimme zu verteilende blanks; -    initialisiere die reihung. -  bestimme blankanzahl in der zeile: -    gezaehlte blanks := 0; -    INT VAR zeiger; -    FOR zeiger FROM 1 UPTO length (zeileninhalt) REP -      IF (zeileninhalt SUB zeiger) = blank -         THEN gezaehlte blanks INCR 1 - -      FI -    PER. -  bestimme zu verteilende blanks: -    zu verteilende blanks := maxzeichenzahl - length (zeileninhalt). -  initialisiere die reihung: -    FOR zeiger FROM 1 UPTO gezaehlte blanks REP -      leerzeichen [zeiger] := 1 -    PER. -  verteile blanks gleichmaessig: -    WHILE (zu verteilende blanks DIV gezaehlte blanks) > 0 REP -      schlag je ein blank auf; -      zu verteilende blanks DECR gezaehlte blanks -    PER. -  schlag je ein blank auf: -    FOR zeiger FROM 1 UPTO gezaehlte blanks REP - -      leerzeichen [zeiger] INCR 1 -    PER. -  verteile blanks zufaellig: -    FOR zeiger FROM 1 UPTO zu verteilende blanks REP -      leerzeichen [random (1, gezaehlte blanks)] INCR 1 -    PER. -  baue zeile zusammen: -    TEXT VAR zwischen        := zeileninhalt; -    INT  VAR aktuelles blank := 0; -    zeileninhalt             := ""; -    FOR zeiger FROM 1 UPTO length (zwischen) REP -      TEXT VAR aktuelles zeichen :: (zwischen SUB zeiger); -      IF aktuelles zeichen = blank -         THEN aktuelles blank INCR 1; - -              zeileninhalt CAT (leerzeichen [aktuelles blank] * blank) -         ELSE zeileninhalt CAT aktuelles zeichen -      FI -    PER -END PROC bereite den text auf; -PROC erzeuge textprozedur (TEXT CONST dateiname, prozedurname): -  mache aus den zeilen einzeltexte; -  entferne ueberfluessige restzeilen; -  erstelle eine textprozedur. -  mache aus den zeilen einzeltexte: -    INT  VAR zeiger; -    FILE VAR ausdatei :: sequential file (modify, dateiname + dateikennung); -    FOR zeiger FROM 1 UPTO lines (ausdatei) REP - -      bearbeite eine zeile -    PER. -  bearbeite eine zeile: -    TEXT VAR zeileninhalt; -    to line (ausdatei, zeiger); -    read record (ausdatei, zeileninhalt); -    zeileninhalt := """ " + zeileninhalt + """ +"; -    change all (zeileninhalt, "", "-"); -    write record (ausdatei, zeileninhalt). -  entferne ueberfluessige restzeilen: -    REP -      entferne ggf eine zeile -    UNTIL zeileninhalt <> """   ""13"""" +" PER; -    entferne return aus letzter zeile. -  entferne ggf eine zeile: - -    IF compress (zeileninhalt) = """   ""13"""" +" -       THEN delete record (ausdatei) -    FI. -  entferne return aus letzter zeile: -    to line (ausdatei, lines (ausdatei)); -    read record (ausdatei, zeileninhalt); -    zeileninhalt := subtext (zeileninhalt, 1, length (zeileninhalt) - 6); -    write record (ausdatei, zeileninhalt). -  erstelle eine textprozedur: -    schreibe procanfang; -    schreibe procende. -  schreibe procanfang: -    to line (ausdatei, 1); -    insert record (ausdatei); - -    write record (ausdatei, "TEXT PROC " + prozedurname + ":"). -  schreibe procende: -    to line (ausdatei, lines (ausdatei) + 1); -    insert record (ausdatei); -    write record (ausdatei, "END PROC " + prozedurname + ";"). -END PROC erzeuge textprozedur; -PROC erzeuge textzeile (TEXT CONST dateiname): -  entferne ueberfluessige restzeilen; -  entferne return aus letzter zeile; -  erstelle eine textzeile. -  entferne ueberfluessige restzeilen: -    TEXT VAR zeileninhalt; -    INT VAR zeiger; - -    FILE VAR ausdatei :: sequential file (modify, dateiname + dateikennung); -    REP -      entferne ggf eine zeile -    UNTIL compress (zeileninhalt) <> """13""" PER. -  entferne ggf eine zeile: -    to line (ausdatei, lines (ausdatei)); -    read record (ausdatei, zeileninhalt); -    IF compress (zeileninhalt) = """13""" -       THEN delete record (ausdatei) -    FI. -  entferne return aus letzter zeile: -    to line (ausdatei, lines (ausdatei)); -    read record (ausdatei, zeileninhalt); -    change all (zeileninhalt, """13""", ""); - -    write record (ausdatei, zeileninhalt). -  erstelle eine textzeile: -    haenge die zeilen aneinander; -    fasse zeile in gaensefuesschen; -    schreibe einzelzeile in ausgabedatei. -  haenge die zeilen aneinander: -    TEXT VAR zeile :: ""; -    FOR zeiger FROM 1 UPTO lines (ausdatei) REP -      to line (ausdatei, zeiger); -      read record (ausdatei, zeileninhalt); -      zeile CAT (" " + zeileninhalt) -    PER. -  fasse zeile in gaensefuesschen: -    zeile := """" + zeile + """"; -    change all (zeile, "","-"). - -  schreibe einzelzeile in ausgabedatei: -    forget (dateiname + dateikennung, quiet); -    FILE VAR fertig :: sequential file (modify, dateiname + dateikennung); -    to line (fertig, 1); -    insert record (fertig); -    write record (fertig, zeile) -END PROC erzeuge textzeile; -END PACKET ls menu generator 1; - - diff --git a/menugenerator/ls-Menu-Generator 2 b/menugenerator/ls-Menu-Generator 2 deleted file mode 100644 index e38fc7e..0000000 --- a/menugenerator/ls-Menu-Generator 2 +++ /dev/null @@ -1,698 +0,0 @@ -(*  -         -          *********************************************************  -          *********************************************************  -          **                                                     **  -          **                 ls-Menu-Generator 2                 **  -          **                                                     **  -          **                     Version 1.0                     **  -          **                                                     **  -          **                  (Stand: 30.03.88)                  **  -          **                                                     **  -          **                                                     **  -          **         Autor: Wolfgang Weber, Bielefeld            **  -          **                                                     **  -          **                                                     **  -          ** Copyright (C) 1987, 1988 Eva Latta-Weber, Bielefeld **  -          **                                                     **  -          ** Copyright (C) 1988 ERGOS GmbH, Siegburg             **  -          **                                                     **  -          *********************************************************  -          *********************************************************  -  -                                                                           *)  -  -PACKET ls menu generator 2 DEFINES -            oeffne menukarte, -            oeffne menu, -            oberbegriff, -            menufunktion, -            trennlinie, -            schliesse menu, -            schliesse menukarte, -            testinstallation: -LET menutafeltype         = 1954, -    kennung               = "ls - Menu - Generator", -    mm taskname           = "ls-MENUKARTEN", -    menutafelpraefix      = "ls-MENUKARTE:", -    menu grundtext        = "ls-MENUBASISTEXTE", -    zwischenablagename    = "MENU-ZWISCHENABLAGEDATEI INTERN"; - -LET maxmenus              =    6, -    maxmenutexte          =  300, -    maxinfotexte          = 2000, -    maxhauptmenupunkte    =   10, -    maxuntermenupunkte    =   15, -    maxmenubreite         =   71;   (* Breite der Hauptmenüzeile - 2 *) -LET blank                 =    " ", -    cleop                 =  ""4"", -    piep                  =  ""7"", -    trennzeilensymbol     =  "###", -    bleibt leer symbol    =  "***", -    hauptmenuluecke       =  "  "; -LET dummyname             =  "Dummy für Anwendertexte", - -    install finished      =  "Installation abgeschlossen!", -    card finished         =  "Menukartengenerierung abgeschlossen!", -    filetype              =  1003; -TYPE MENUPUNKT   = STRUCT (TEXT punktkuerzel, -                                punktname, -                                procname, -                                boxtext, -                           BOOL aktiv, -                                angewaehlt), -     EINZELMENU  = STRUCT (INT  belegt, -                           TEXT ueberschrift, - -                           INT  anfangsposition, -                                maxlaenge, -                           ROW  maxuntermenupunkte MENUPUNKT menupunkt, -                           INT  aktueller untermenupunkt, -                           TEXT startprozedurname, -                                leaveprozedurname), -     MENU        = STRUCT (TEXT menuname, -                           INT  anzahl hauptmenupunkte, -                           ROW  maxhauptmenupunkte EINZELMENU einzelmenu, - -                           TEXT menueingangsprozedur, -                                menuausgangsprozedur, -                                menuinfo, -                                lizenznummer, -                                versionsnummer, -                           INT  hauptmenuzeiger, -                                untermenuanfang, -                                untermenuzeiger), -     INFOTEXT    = STRUCT (INT anzahl infotexte, -                           ROW maxinfotexte TEXT stelle), - -     MENUTEXT    = STRUCT (INT anzahl menutexte, -                           ROW maxmenutexte TEXT platz), -     MENULEISTE  = STRUCT (INT belegt, zeigeraktuell, zeigerhintergrund, -                           ROW maxmenus MENU menu, -                           MENUTEXT   menutext, -                           INFOTEXT   infotext); -ROW 14 TEXT CONST aussage :: ROW 14 TEXT : ( -"ACHTUNG - Eine Menukarte mit diesem Namen existiert bereits - ACHTUNG", -"Kann die bereits existierende Menukarte gelöscht werden", - -"Dann kann keine neue Menukarte mit diesem Namen erstellt werden!", -"Zum Weitermachen bitte irgendeine Taste tippen!", -"Sollen auch Anwendungstexte in die Menukarte aufgenommen werden", -"Auswahl der Datei, in der die Anwendungstexte stehen.", -"Bitte die gewünschte Datei ankreuzen!", -"Durchgang 1 von 2 Durchgängen - in Arbeit ist Zeile: ", -"Durchgang 2 von 2 Durchgängen - in Arbeit ist Zeile: ", -"", -"Einlesen von Texten aus Datei : ", -"Bearbeitet  wird Menu         : ", -"Eingetragen wird Oberbegriff  : ", - -"Eingetragen wird Menufunktion : " -); -ROW 22 TEXT CONST fehlermeldung :: ROW 22 TEXT : ( -"Ohne die Datei '", -"' "13""10""10"         ist die Menuerstellung "15"unmöglich "14"!!", -"Hier muß unbedingt eine Datei angekreuzt werden!", -"Ausgewählte Datei hat falschen Typ (<> 1003) )", -"Zu viele Anwendungstexte in der Datei ", -"Anführungszeichen fehlt am Anfang oder Ende der Zeile ", -"Anführungszeichen fehlt irgendwo in Zeile ", -"Die angegebene Datei existiert nicht!", -"Menukarte noch nicht geöffnet ('oeffne menukarte' fehlt)! ", - -"Vorausgehendes Menu nicht geschlossen! ", -"Zu viele Menus in der Menukarte (> " + text (maxmenus) + ")!", -"Menuname ist mehrfach vorhanden!", -"Menu noch nicht geoeffnet ('oeffne menu' fehlt)!", -"Zu viele Oberbegriffe in einem Menu (> " + text (maxhauptmenupunkte) + ")!", -"Die Kopfzeile ist zu lang (> " + text (maxmenubreite)  + ")!", -"Menupunkt-Kürzel ist länger als ein Zeichen!", -"Menupunkt-Kürzel kommt mehrfach vor (nicht eindeutig)!", -"Menupunkt-Bezeichnung ist zu lang!", -"Zu viele (> " + text (maxuntermenupunkte) + ") Menupunkte in einem Pull-Down-Menu!", - -"Menukarte '", -"' gibt es nicht in dieser Task!", -"' hat falsche(n) Typ/Bezeichnung" -); -TEXT VAR menuinfotextdateiname, -         aktueller menudateiname; -BOOL VAR menuleiste ist bereit :: FALSE, -         menu ist geoeffnet    :: FALSE; -BOUND MENULEISTE VAR menuleiste; -BOUND MENUTEXT   VAR basistexte; -BOUND MENU       VAR aktuelles menu; -DATASPACE VAR ds; -OP := (MENUTEXT VAR ziel, MENUTEXT VAR quelle): -  INT VAR z; -  ziel.anzahl menutexte := quelle.anzahl menutexte; -  FOR z FROM 1 UPTO quelle.anzahl menutexte REP - -    ziel.platz [z] := quelle.platz [z] -  PER -END OP :=; -OP := (MENU VAR ziel, MENU CONST quelle): -  CONCR (ziel) := CONCR (quelle) -END OP :=; -OP := (EINZELMENU VAR ziel, EINZELMENU CONST quelle): -  CONCR (ziel) := CONCR (quelle) -END OP :=; -OP := (MENUPUNKT VAR ziel, MENUPUNKT CONST quelle): -  CONCR (ziel) := CONCR (quelle) -END OP :=; -PROC oeffne menukarte (TEXT CONST menukartenname): -  gib bildschirmhinweis aus; -  ueberpruefe voraussetzungen; -  erfrage den namen der datei mit den anwendertexten; - -  erstelle neue menuleiste. -  gib bildschirmhinweis aus: -    page; out (center (invers (kennung))). -  ueberpruefe voraussetzungen: -    ueberpruefe ob basistexte vorhanden sind; -    ueberpruefe ob menukarte schon vorhanden ist. -  ueberpruefe ob basistexte vorhanden sind: -    IF NOT exists (menu grundtext) -       THEN gib hinweis und brich ab -    FI. -  gib hinweis und brich ab: -    disable stop; -    fetch (menu grundtext, /mm taskname); -    IF is error -       THEN clear error; -            enable stop; - -            cursor (1, 4); out (cleop); -            errorstop (fehlermeldung [1] + menu grundtext + fehlermeldung [2]) -       ELSE clear error; -            enable stop -    FI. -  ueberpruefe ob menukarte schon vorhanden ist: -    IF exists (menukarte) -       THEN gib hinweis auf vorhandene menukarte; -            frage ob die alte karte geloescht werden darf -    FI. -  menukarte: -    menutafelpraefix + menukartenname. -  gib hinweis auf vorhandene menukarte: -    cursor (1, 4); out (cleop); - -    cursor (1, 4); out (center (menukarte)); -    cursor (1, 6); out (center (invers (aussage [1]))). -  frage ob die alte karte geloescht werden darf: -    cursor (2, 9); -    IF yes (aussage [2]) -       THEN forget (menukarte, quiet) -       ELSE weiterarbeit ist unmoeglich -    FI. -  weiterarbeit ist unmoeglich: -    cursor (1, 12); out (center (invers (aussage [3]))); -    cursor (2, 15); out (aussage [4]); -    cursor (2, 16); pause; page; -    errorstop (""). -  erfrage den namen der datei mit den anwendertexten: - -    cursor (1, 4); out (cleop); -    IF yes (aussage [5]) -       THEN biete dateiauswahl an -       ELSE erzeuge dateidummy -    FI. -  biete dateiauswahl an: -    menuinfotextdateiname := one (2, 6, 77, 19, ALL myself, -                                  aussage [6], aussage [7]); -    ueberpruefe den dateinamen; -    ueberpruefe den dateityp. -  ueberpruefe den dateinamen: -    IF compress (menuinfotextdateiname) = "" -       THEN page; errorstop (fehlermeldung [3]) -    FI. -  ueberpruefe den dateityp: - -    IF datei hat falschen typ -       THEN page; errorstop (fehlermeldung [4]) -    FI. -  datei hat falschen typ: -    ds := old (menuinfotextdateiname); -    IF type (ds) <> filetype -       THEN forget (ds); TRUE -       ELSE forget (ds); FALSE -    FI. -  erzeuge dateidummy: -    forget (dummyname, quiet); -    FILE VAR datei :: sequential file (modify, dummyname); -    to line (datei, 1); -    menuinfotextdateiname := dummyname. -  erstelle neue menuleiste: -    INT  VAR zeiger; -    TEXT VAR zeileninhalt; - -    initialisiere werte; -    aktueller menudateiname  := menukarte; -    menuleiste               := new (aktueller menudateiname); -    type (old (aktueller menudateiname), menutafeltype); -    menuleiste.belegt        := 0; -    menuleiste ist bereit    := TRUE; -    trage menubasistexte ein; -    trage anwendungstexte ein. -  initialisiere werte: -    menuleiste ist bereit  := FALSE; -    menu ist geoeffnet     := FALSE. -  trage menubasistexte ein: -    basistexte             := old (menu grundtext); - -    menuleiste.menutext    := basistexte. -  trage anwendungstexte ein: -    konvertiere (menuinfotextdateiname, zwischenablagename, -                 menuleiste.infotext.anzahl infotexte); -    ueberpruefe anwendungstextanzahl; -    trage anwendungstexte in die menuleiste. -  ueberpruefe anwendungstextanzahl: -    IF menuleiste.infotext.anzahl infotexte > maxinfotexte -       THEN forget (zwischenablagename,      quiet); -            forget (aktueller menudateiname, quiet); -            errorstop (fehlermeldung [5] + "'" + menuinfotextdateiname + "'") - -    FI. -  trage anwendungstexte in die menuleiste: -    gib hinweis auf anwendungstexteintrag; -    FILE VAR ein :: sequential file (input, zwischenablagename); -    FOR zeiger FROM 1 UPTO menuleiste.infotext.anzahl infotexte REP -      getline (ein, zeileninhalt); -      menuleiste.infotext.stelle [zeiger] := zeileninhalt; -      cout (zeiger) -    PER; -    forget (zwischenablagename, quiet); -    forget (dummyname         , quiet). -  gib hinweis auf anwendungstexteintrag: -    cursor (1, 7); out (aussage [9]). - -END PROC oeffne menukarte; -PROC konvertiere (TEXT CONST eingabedatei, ausgabedatei, -                  INT  VAR   anzahl konvertierter saetze): -  loesche ausgabedatei; -  untersuche eingabedatei; -  konvertiere saetze. -  loesche ausgabedatei: -    IF exists (ausgabedatei) -       THEN forget (ausgabedatei, quiet) -    FI. -  untersuche eingabedatei: -    IF NOT exists (eingabedatei) -       THEN errorstop (fehlermeldung [8]) -    FI. -  konvertiere saetze: -    gib hinweis; -    konvertiere satzweise. - -  gib hinweis: -    cursor (1, 4); out (cleop); -    cursor (1, 4); out (aussage [11] + "'" + eingabedatei + "'"); -    cursor (1, 6); out (aussage [ 8]); -    anzahl konvertierter saetze := 0. -  konvertiere satzweise: -    TEXT VAR zeileninhalt :: ""; -    FILE VAR eingabe :: sequential file (input, eingabedatei); -    WHILE NOT eof (eingabe) REP -      behandle eine dateizeile -    PER; -    optimiere ausgabedatei. -  behandle eine dateizeile: -    getline (eingabe, zeileninhalt); -    anzahl konvertierter saetze INCR 1; - -    cout (anzahl konvertierter saetze); -    untersuche zeile; -    wandle die zeile um; -    FILE VAR aus :: sequential file (output, ausgabedatei); -    write (aus, textausgabe). -  untersuche zeile: -    zeileninhalt := compress (zeileninhalt); -    IF zeileninhalt = "" -       THEN zeileninhalt := """""" -    FI; -    IF    (zeileninhalt SUB 1)                     <> """" -       OR (zeileninhalt SUB length (zeileninhalt)) <> """" -       THEN bereite abgang vor; -            errorstop (fehlermeldung [6] + text (anzahl konvertierter saetze)) - -    FI. -  wandle die zeile um: -    TEXT VAR textausgabe :: "", codekette; -    zeileninhalt := subtext (zeileninhalt, 2, length (zeileninhalt) - 1); -    WHILE gaensefuesschenposition > 0 REP -        textausgabe CAT subtext (zeileninhalt, 1, gaensefuesschenposition - 1); -        zeileninhalt := subtext (zeileninhalt, gaensefuesschenposition); -        codekette    := subtext (zeileninhalt, 1, pos (zeileninhalt, """", 2)); -        IF   codekette =  """7""" -             THEN textausgabe CAT  ""7"" - -        ELIF codekette =  """5""" -             THEN textausgabe CAT  ""5"" -        ELIF codekette =  """4""" -             THEN textausgabe CAT  ""4"" -        ELIF codekette =  """10""" -             THEN textausgabe CAT ""10"" -        ELIF codekette = """13""" -             THEN textausgabe CAT ""13"" -        ELIF codekette = """14""" -             THEN textausgabe CAT ""14"" -        ELIF codekette = """15""" -             THEN textausgabe CAT ""15"" -        ELIF codekette = """""" -             THEN textausgabe CAT """" - -        ELSE errorstop (fehlermeldung [7] + -                        text (anzahl konvertierter saetze)) -        FI; -        zeileninhalt := subtext (zeileninhalt, 1 + length (codekette)) -      PER; -      textausgabe CAT zeileninhalt. -    gaensefuesschenposition: -      pos (zeileninhalt, """"). -    bereite abgang vor: -      forget (ausgabedatei, quiet); -      line (2). -  optimiere ausgabedatei: -    FILE VAR ausgabe :: sequential file (modify, ausgabedatei); -    WHILE lines (ausgabe) > 0 CAND letzter satz ist leer REP - -      to line (ausgabe, lines (ausgabe)); -      delete record (ausgabe); -      anzahl konvertierter saetze DECR 1; -      cout (anzahl konvertierter saetze ) -    PER. -  letzter satz ist leer: -   TEXT VAR satz; -   to line (ausgabe,lines (ausgabe)); -   read record (ausgabe, satz); -   IF compress (satz) = "" OR compress (satz) = ""13"" -      THEN TRUE -      ELSE FALSE -   FI. -END PROC konvertiere; -PROC oeffne menu (TEXT CONST name, einstiegsproc, ausstiegsproc, -                             itext, ltext, vtext): - -  gib hinweis auf geoeffnetes menu; -  ueberpruefe auf ungereimtheiten; -  nimm eintragungen in datenraum vor. -  gib hinweis auf geoeffnetes menu: -    cursor (1, 4); out (cleop); -    out (aussage [12]); out (invers (name)); -    cursor (1, 6). -  ueberpruefe auf ungereimtheiten: -    pruefe auf bereits geoeffnete menuliste; -    pruefe auf noch geoeffnetes menu; -    pruefe auf noch freie menuplaetze; -    pruefe auf schon vorhandenen menunamen. -  pruefe auf bereits geoeffnete menuliste: -    IF NOT menuleiste ist bereit - -       THEN bereinige eintragungen (9) -    FI. -  pruefe auf noch geoeffnetes menu: -    IF menu ist geoeffnet -       THEN bereinige eintragungen (10) -    FI. -  pruefe auf noch freie menuplaetze: -    IF menuleiste.belegt = maxmenus -       THEN bereinige eintragungen (11) -    FI. -  pruefe auf schon vorhandenen menunamen: -    IF menuname schon vorhanden -       THEN bereinige eintragungen (12) -    FI. -  menuname schon vorhanden: -    INT VAR i; -    FOR i FROM 1 UPTO menuleiste.belegt REP - -      untersuche einzelnen menunamen -    PER; -    FALSE. -  untersuche einzelnen menunamen: -    IF menuleiste.menu [i].menuname = compress (name) -       THEN LEAVE menuname schon vorhanden WITH TRUE -    FI. -  nimm eintragungen in datenraum vor: -    forget (ds); -    ds                                  := nilspace; -    aktuelles menu                      := ds; -    init (aktuelles menu); -    aktuelles menu.menuname             := compress (name); -    aktuelles menu.menueingangsprozedur := compress (einstiegsproc); - -    aktuelles menu.menuausgangsprozedur := compress (ausstiegsproc); -    IF itext <> "" -        THEN aktuelles menu.menuinfo          := itext; -             aktuelles menu.lizenznummer      := ltext; -             aktuelles menu.versionsnummer    := vtext -        ELSE aktuelles menu.menuinfo          := bleibt leer symbol; -             aktuelles menu.lizenznummer      := ""; -             aktuelles menu.versionsnummer    := "" -    FI; -    menu ist geoeffnet      := TRUE. -END PROC oeffne menu; - -PROC oeffne menu (TEXT CONST name, einstiegsproc, ausstiegsproc): -  oeffne menu (name, einstiegsproc, ausstiegsproc, "", "", "") -END PROC oeffne menu; -PROC oeffne menu (TEXT CONST name): -  oeffne menu (name, "", "", "", "", "") -END PROC oeffne menu; -PROC bereinige eintragungen (INT CONST nummer): -  forget (ds); -  forget (aktueller menudateiname, quiet); -  menuleiste ist bereit := FALSE; -  menu ist geoeffnet    := FALSE; -  errorstop (fehlermeldung [nummer]) -END PROC bereinige eintragungen; - -PROC init (MENU VAR m): -  m.menuname                         := ""; -  m.hauptmenuzeiger                  := 1; -  m.untermenuanfang                  := 0; -  m.untermenuzeiger                  := 0; -  m.menueingangsprozedur             := ""; -  m.menuausgangsprozedur             := ""; -  m.menuinfo                         := ""; -  m.versionsnummer                   := ""; -  m.anzahl hauptmenupunkte           := 0; -  belege hauptmenupunkte. -  belege hauptmenupunkte: -    INT VAR i; -    FOR i FROM 1 UPTO maxhauptmenupunkte REP - -      aktuelles einzelmenu.belegt                     :=   0; -      aktuelles einzelmenu.ueberschrift               :=  ""; -      aktuelles einzelmenu.anfangsposition            :=   0; -      aktuelles einzelmenu.maxlaenge                  :=   0; -      aktuelles einzelmenu.aktueller untermenupunkt   :=   1; -      aktuelles einzelmenu.startprozedurname          :=  ""; -      aktuelles einzelmenu.leaveprozedurname          :=  ""; -      belege untermenuepunkte -    PER. -   belege untermenuepunkte: - -     INT VAR j; -     FOR j FROM 1 UPTO maxuntermenupunkte REP -       aktueller menupunkt.punktkuerzel := ""; -       aktueller menupunkt.punktname    := ""; -       aktueller menupunkt.procname     := ""; -       aktueller menupunkt.boxtext      := ""; -       aktueller menupunkt.aktiv        := TRUE; -       aktueller menupunkt.angewaehlt   := FALSE -     PER. -   aktuelles einzelmenu: m.einzelmenu [i]. -   aktueller menupunkt: aktuelles einzelmenu.menupunkt [j]. -END PROC init; -PROC oberbegriff (TEXT CONST punktname, startprocname, leaveprocname): - -  gib hinweis auf oberbegriff; -  untersuche ob menu geoeffnet und bereit ist; -  untersuche oberbegriffe; -  trage neuen oberbegriff ein; -  notiere die anfangsposition; -  notiere start und leaveprozedur; -  erhoehe die anzahl der oberbegriffe. -  gib hinweis auf oberbegriff: -    cursor (1, 6); out (cleop); -    cursor (1, 6); out (aussage [13]); out (invers (punktname)); line. -  untersuche ob menu geoeffnet und bereit ist: -    IF NOT menuleiste ist bereit -       THEN bereinige eintragungen ( 9) - -    FI; -    IF NOT menu ist geoeffnet -       THEN bereinige eintragungen (13) -    FI. -  untersuche oberbegriffe: -    IF zu viele oberbegriffe -       THEN bereinige eintragungen (14) -    FI; -    IF gesamtlaenge > maxmenubreite -       THEN bereinige eintragungen (15) -    FI. -  zu viele oberbegriffe: -    aktuelles menu.anzahl hauptmenupunkte = maxhauptmenupunkte. -  gesamtlaenge: -    gesamtlaenge ohne letzten punkt + length (compress (punktname)). -  gesamtlaenge ohne letzten punkt: -    length (hauptmenuzeile). - -  hauptmenuzeile: -    INT VAR zaehler; -    TEXT VAR zeile :: ""; -    schreibe menunamen; -    schreibe oberbegriffe; -    zeile. -  schreibe menunamen: -    IF aktuelles menu. menuname <> "" -       THEN zeile CAT aktuelles menu.menuname; -            zeile CAT ":" -    FI. -  schreibe oberbegriffe: -    FOR zaehler FROM 1 UPTO aktuelles menu.anzahl hauptmenupunkte REP -      zeile CAT hauptmenuluecke; -      zeile CAT aktuelles menu. einzelmenu [zaehler].ueberschrift -    PER; -    zeile CAT hauptmenuluecke. - -  trage neuen oberbegriff ein: -    neuer menupunkt.ueberschrift     := compress (punktname). -  notiere die anfangsposition: -    neuer menupunkt.anfangsposition  := gesamtlaenge ohne letzten punkt + 1. -  notiere start und leaveprozedur: -    neuer menupunkt.startprozedurname := compress (startprocname); -    neuer menupunkt.leaveprozedurname := compress (leaveprocname). -  neuer menupunkt: -    aktuelles menu.einzelmenu [aktuelles menu.anzahl hauptmenupunkte + 1]. -  erhoehe die anzahl der oberbegriffe: - -    aktuelles menu.anzahl hauptmenupunkte INCR 1. -END PROC oberbegriff; -PROC oberbegriff (TEXT CONST punktname): -  oberbegriff (punktname, "", "") -END PROC oberbegriff; -PROC menufunktionseintrag (TEXT CONST kuerzel, -                                      punktbezeichnung, -                                      prozedurname, -                                      infotext, -                           BOOL CONST ist aktiv): -  gib hinweis auf menufunktionseintrag; -  trage menupunkt ein; -  organisiere menu neu. - -  gib hinweis auf menufunktionseintrag: -    line; -    out (aussage [14]); -    out ("'" + kuerzelzeichen  + "' - " + punktname). -  kuerzelzeichen: -    IF kuerzel = "" THEN " " ELSE kuerzel FI. -  punktname: -    IF punktbezeichnung = trennzeilensymbol -       THEN "----------" -       ELSE punktbezeichnung -    FI. -  trage menupunkt ein: -    ueberpruefe das kuerzel; -    ueberpruefe die punktbreite; -    ueberpruefe die eintragsnummer; -    aktuelles menu.einzelmenu [stelle].belegt INCR 1; - -    aktueller menupunkt.punktkuerzel  := compress (kuerzel); -    aktueller menupunkt.punktname     := normierter menupunkt; -    aktueller menupunkt.procname      := compress (prozedurname); -    aktueller menupunkt.boxtext       := infotext; -    aktueller menupunkt.aktiv         := ist aktiv; -    aktueller menupunkt.angewaehlt    := FALSE. -  aktueller menupunkt: -    aktuelles untermenu.menupunkt [aktuelles untermenu.belegt]. -  aktuelles untermenu: -    aktuelles menu.einzelmenu [stelle]. - -  stelle: -    aktuelles menu.anzahl hauptmenupunkte. -  normierter menupunkt: -    blank + compress (punktbezeichnung). -  ueberpruefe das kuerzel: -    TEXT VAR kurz :: compress (kuerzel); -    IF   kuerzel ist zu lang -         THEN bereinige eintragungen (16) -    ELIF kuerzel ist schon vorhanden -         THEN bereinige eintragungen (17) -    FI. -  kuerzel ist zu lang: -    length (kurz) > 1. -  kuerzel ist schon vorhanden: -    (length (kurz) = 1) AND (pos (vorhandene kuerzel, kurz) > 0). - -  vorhandene kuerzel: -    TEXT VAR liste :: ""; -    INT VAR zeiger; -    FOR zeiger FROM 1 UPTO aktuelles untermenu.belegt REP -      liste CAT aktuelles untermenu.menupunkt [zeiger].punktkuerzel -    PER; -    liste. -  ueberpruefe die punktbreite: -    IF length (compress (punktbezeichnung)) > maxmenubreite - 10 -       THEN bereinige eintragungen (18) -    FI. -  ueberpruefe die eintragsnummer: -    IF aktuelles untermenu.belegt = maxuntermenupunkte -       THEN bereinige eintragungen (19) - -    FI. -  organisiere menu neu: -    IF neue punktlaenge > aktuelles untermenu.maxlaenge -       THEN aktuelles untermenu.maxlaenge := neue punktlaenge -    FI. -  neue punktlaenge: -    length (aktueller menupunkt.punktname). -END PROC menufunktionseintrag; -PROC menufunktion (TEXT CONST kuerzel, punktbezeichnung, -                              prozedurname, infotext): -  menufunktionseintrag (kuerzel, punktbezeichnung, prozedurname, infotext, -                        TRUE) -END PROC menufunktion; - -PROC trennlinie: -  menufunktionseintrag ("", trennzeilensymbol, "", "", FALSE) -END PROC trennlinie; -PROC schliesse menu: -  menuleiste. belegt INCR 1; -  menuleiste.menu [menuleiste.belegt] := aktuelles menu; -  menu ist geoeffnet                  := FALSE -END PROC schliesse menu; -PROC schliesse menukarte: -  forget (ds); -  page; out (piep); put (card finished) -END PROC schliesse menukarte; -PROC testinstallation (TEXT CONST kartenname): -  ueberpruefe menukarte; -  nimm installation vor. - -  ueberpruefe menukarte: -    IF   NOT exists (kartenname) -         THEN errorstop (fehlermeldung [20] + kartenname + fehlermeldung [21]) -    ELIF    (pos (kartenname, menutafelpraefix) <> 1) -         OR (type (old (kartenname)) <> menutafeltype) -         THEN errorstop (fehlermeldung [20] + kartenname + fehlermeldung [22]) -    FI. -  nimm installation vor: -    TEXT CONST neuer kartenname -                    :: kartenname + "  von Task '" + name (myself) + "'"; -    command dialogue (FALSE); - -    rename (kartenname, neuer kartenname); -    save (neuer kartenname,task (mmtaskname)); -    forget (neuer kartenname, quiet); -    reset dialog; -    install menu (neuer kartenname, FALSE); -    fetch (neuer kartenname, task (mmtaskname)); -    rename (neuer kartenname, kartenname); -    command dialogue (TRUE); -    page; out (piep); put (install finished) -END PROC testinstallation; -END PACKET ls menu generator 2; - - diff --git a/menugenerator/ls-Menu-Generator-gen b/menugenerator/ls-Menu-Generator-gen deleted file mode 100644 index ca26366..0000000 --- a/menugenerator/ls-Menu-Generator-gen +++ /dev/null @@ -1,112 +0,0 @@ -(*  -         -          *********************************************************  -          *********************************************************  -          **                                                     **  -          **                  ls-Menu-Generator                  **  -          **                  GENERATORPROGRAMM                  **  -          **                     Version 1.0                     **  -          **                                                     **  -          **                  (Stand: 30.03.88)                  **  -          **                                                     **  -          **                                                     **  -          **         Autor: Wolfgang Weber, Bielefeld            **  -          **                                                     **  -          **                                                     **  -          ** Copyright (C) 1987, 1988 Eva Latta-Weber, Bielefeld **  -          **                                                     **  -          ** Copyright (C) 1988 ERGOS GmbH, Siegburg             **  -          **                                                     **  -          *********************************************************  -          *********************************************************  -  -                                                                           *)  -  -LET mm taskname =  "ls-MENUKARTEN", -    datei 1     =  "Generatordatei: Archivmenu", -    datei 2     =  "ls-MENUBASISTEXTE", -    datei 3     =  "ls-Menu-Generator 1", -    datei 4     =  "ls-Menu-Generator 2"; -PROC stelle existenz des mm sicher: -  cursor (1, 5); out (""4""); -  IF NOT exists (task (mm taskname)) -     THEN errorstop ("Unbedingt erst den 'MENUKARTEN-MANAGER' generieren!"); -  FI -END PROC stelle existenz des mm sicher; -PROC vom archiv (TEXT CONST datei): -  cursor (1,5); out (""4""); - -  out ("  """); out (datei); putline (""" wird geholt."); -  fetch (datei, archive) -END PROC vom archiv; -PROC hole (TEXT CONST datei): -  IF NOT exists (datei) THEN vom archiv (datei) FI -END PROC hole; -PROC in (TEXT CONST datei): -  hole (datei); -  cursor (1, 5); out (""4""); -  out ("  """); out (datei); out (""" wird übersetzt: "); -  insert (datei); -  forget (datei, quiet); -END PROC in; -PROC schicke (TEXT CONST datei): -  cursor (1, 5); out (""4""); -  out ("  """); out(datei); -  out (""" wird zum MENUKARTEN-MANAGER geschickt!"); - -  command dialogue (FALSE); -  save (datei, task (mm taskname)); -  command dialogue (TRUE); -  forget (datei, quiet) -END PROC schicke; -INT VAR size, used; -BOOL VAR einzeln; -storage (size, used); -einzeln := size - used < 500; -forget ("ls-Menu-Generator/gen", quiet); -wirf kopfzeile aus; -stelle existenz des mm sicher; -hole die dateien; -insertiere die dateien; -mache global manager aus der task. -wirf kopfzeile aus: -  page; -  putline ("                  "15"ls-Menu-Generator - Automatische Generierung "14""). - -hole die dateien: -  IF     NOT exists (datei 1) COR NOT exists (datei 2) -     COR NOT exists (datei 3) COR NOT exists (datei 4) -     THEN hole dateien vom archiv -  FI. -hole dateien vom archiv: -  cursor (1,3); -  say ("Ist das Archiv angemeldet und die "); line; -  IF yes ("'ls-Menu-Generator'-Diskette eingelegt") -     THEN lese ein -     ELSE line (2); -          errorstop ("Ohne die Diskette kann ich das System nicht generieren!") -  FI. -lese ein: -  cursor (1, 3); out (""4""); -  out ("                      "15"Bitte die Diskette eingelegt lassen! "14""); - -  IF NOT einzeln -     THEN hole (datei 1); -          hole (datei 2); -          hole (datei 3); -          hole (datei 4); -          cursor (1, 3); out(""4""); -          out ("                     "15"Die Diskette wird nicht mehr benötigt! "14""); -          release (archive) -  FI. -insertiere die dateien: -  check off; -  schicke (datei 2); -  in (datei 3); -  in (datei 4); -  IF einzeln THEN release (archive) FI; -  check on. -mache global manager aus der task: -  global manager. - - | 
