summaryrefslogtreecommitdiff
path: root/hamster/ls-Herbert und Robbi 3
diff options
context:
space:
mode:
Diffstat (limited to 'hamster/ls-Herbert und Robbi 3')
-rw-r--r--hamster/ls-Herbert und Robbi 3929
1 files changed, 0 insertions, 929 deletions
diff --git a/hamster/ls-Herbert und Robbi 3 b/hamster/ls-Herbert und Robbi 3
deleted file mode 100644
index 7a1da20..0000000
--- a/hamster/ls-Herbert und Robbi 3
+++ /dev/null
@@ -1,929 +0,0 @@
-(*
-
- *********************************************************
- *********************************************************
- ** **
- ** ls-Herbert und Robbi 3 **
- ** **
- ** Version 1.1 **
- ** **
- ** (Stand: 30.03.88) **
- ** **
- ** **
- ** Autor: Wolfgang Weber, Bielefeld **
- ** **
- ** **
- ** Copyright (C) 1987, 1988 Eva Latta-Weber, Bielefeld **
- ** **
- ** Copyright (C) 1988 ERGOS GmbH, Siegburg **
- ** **
- *********************************************************
- *********************************************************
-
- *)
-
-PACKET ls herbert und robbi 3 DEFINES
- hamsterbefehlsauskunft,
- hamsterlaufauskunft,
- hamsterlandschaftsauskunft,
- hamsterlandschaft verzeichnis,
- hamsterlandschaft neu erstellen,
- hamsterlandschaft ansehen,
- hamsterlandschaft drucken,
- hamsterlandschaft kopieren,
- hamsterlandschaft umbenennen,
- hamsterlandschaft loeschen,
- hamsterprogramm verzeichnis,
- hamsterprogramm neu erstellen,
- hamsterprogramm ansehen,
- hamsterprogramm kopieren,
- hamsterprogramm umbenennen,
-
- hamsterprogramm loeschen,
- hamsterprogramm drucken,
- hamster laufen lassen,
- hamsterinteraktiv laufen lassen,
- hamster, roboter:
-LET menukarte = "ls-MENUKARTE:Herbert und Robbi",
- praefix = "Flaeche:",
- flaechentype = 1007,
- niltext = "",
- maxlaenge = 60,
- maxnamenslaenge = 50;
-TEXT VAR flaechenname :: "",
- programmname :: "";
-INITFLAG VAR in this task :: FALSE;
-PROC initialize hamster:
-
- IF NOT initialized (in this task)
- THEN flaechenname := "";
- programmname := ""
- FI
-END PROC initialize hamster;
-PROC hamster:
- sei ein hamster;
- initialize hamster;
- install menu (menukarte);
- handle menu ("HAMSTER")
-END PROC hamster;
-PROC roboter:
- sei ein roboter;
- initialize hamster;
- install menu (menukarte);
- handle menu ("ROBOTER");
-END PROC roboter;
-PROC hamsterlaufauskunft:
- menuinfo (laufauskunftstext)
-END PROC hamsterlaufauskunft;
-PROC hamsterlandschaftsauskunft:
-
- menuinfo (landschaftsauskunftstext)
-END PROC hamsterlandschaftsauskunft;
-PROC hamsterbefehlsauskunft:
- menuinfo (befehlsauskunftstext);
- menuinfo (testauskunftstext 1);
- IF testauskunftstext 2 <> ""
- THEN menuinfo (testauskunftstext 2)
- FI
-END PROC hamsterbefehlsauskunft;
-PROC hamsterlandschaft verzeichnis:
- THESAURUS VAR landschaften ::
- ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix);
- forget ("Interne Thesaurusdateiliste", quiet);
- FILE VAR f :: sequential file (output, "Interne Thesaurusdateiliste");
-
- f FILLBY landschaften;
- headline (f, anwendungstext (204)); modify (f);
- to line (f, 1); insert record (f); write record (f, kenntext);
- to line (f, 2); insert record (f);
- to line (f, 1); menuwindowshow (f);
- forget ("Interne Thesaurusdateiliste", quiet);
- regenerate menuscreen.
- kenntext:
- IF ist hamster THEN anwendungstext (121) ELSE anwendungstext (151) FI.
-END PROC hamsterlandschaft verzeichnis;
-PROC hamsterprogramm verzeichnis:
- THESAURUS VAR programme :: ALL myself - infix namen (ALL myself, praefix, flaechentype);
-
- forget ("Interne Thesaurusdateiliste", quiet);
- FILE VAR f :: sequential file (output, "Interne Thesaurusdateiliste");
- f FILLBY programme;
- headline (f, anwendungstext (204)); modify (f);
- to line (f, 1); insert record (f); write record (f, anwendungstext (181));
- to line (f, 2); insert record (f);
- to line (f, 1); menuwindowshow (f);
- forget ("Interne Thesaurusdateiliste", quiet);
- regenerate menuscreen
-END PROC hamsterprogramm verzeichnis;
-PROC hamsterlandschaft neu erstellen:
-
- hole flaechenname;
- kontrolliere den flaechennamen;
- kommandomodus;
- landschaft (flaechenname);
- regenerate menuscreen.
- hole flaechenname:
- IF ist hamster
- THEN flaechenname := menuanswer (anwendungstext (101) +
- anwendungstext (102), "", 5)
- ELSE flaechenname := menuanswer (anwendungstext (131) +
- anwendungstext (132), "", 5)
- FI.
- kontrolliere den flaechennamen:
- IF flaechenname = niltext
-
- THEN LEAVE hamsterlandschaft neu erstellen
- ELIF length (flaechenname) > maxnamenslaenge
- THEN meckere zu langen namen an;
- flaechenname := niltext;
- LEAVE hamsterlandschaft neu erstellen
- ELIF exists (praefix + flaechenname)
- THEN meckere existierende flaeche an;
- LEAVE hamsterlandschaft neu erstellen
- FI
-END PROC hamsterlandschaft neu erstellen;
-PROC hamsterprogramm neu erstellen:
- hole programmname;
- kontrolliere den programmnamen;
-
- command dialogue (FALSE);
- cursor on;
- stdinfoedit (programmname);
- cursor off;
- command dialogue (TRUE);
- regenerate menuscreen.
- hole programmname:
- programmname := menuanswer (anwendungstext (161) +
- anwendungstext (162), "", 5).
- kontrolliere den programmnamen:
- IF programmname = niltext
- THEN LEAVE hamsterprogramm neu erstellen
- ELIF length (programmname) > maxnamenslaenge
- THEN meckere zu langen namen an;
- programmname := niltext;
-
- LEAVE hamsterprogramm neu erstellen
- ELIF exists (programmname)
- THEN meckere existierendes programm an;
- LEAVE hamsterprogramm neu erstellen
- FI
-END PROC hamsterprogramm neu erstellen;
-PROC hamsterlandschaft ansehen:
- IF flaechenname <> niltext CAND exists (praefix + flaechenname)
- THEN frage nach dieser flaeche
- ELSE lasse flaeche auswaehlen
- FI;
- kommandomodus;
- landschaft (flaechenname);
- regenerate menuscreen.
- frage nach dieser flaeche:
-
- IF menuno (ueberschrift + text 1 + name + text 2, 5)
- THEN lasse flaeche auswaehlen
- FI.
- ueberschrift:
- IF ist hamster
- THEN center (maxlaenge, invers (anwendungstext (105))) + ""13""13""
- ELSE center (maxlaenge, invers (anwendungstext (135))) + ""13""13""
- FI.
- text 1:
- IF ist hamster THEN anwendungstext (103) ELSE anwendungstext (133) FI.
- name:
- ""13""13" " + invers (flaechenname) + ""13""13"".
- text 2:
- IF ist hamster THEN anwendungstext (104) ELSE anwendungstext (134) FI.
-
- lasse flaeche auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix);
- IF NOT not empty (verfuegbare)
- THEN noch keine flaeche;
- LEAVE hamsterlandschaft ansehen
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- IF ist hamster
- THEN flaechenname := menuone (verfuegbare, anwendungstext (105),
- anwendungstext (106), FALSE)
- ELSE flaechenname := menuone (verfuegbare, anwendungstext (135),
-
- anwendungstext (136), FALSE)
- FI;
- IF flaechenname = niltext
- THEN regenerate menuscreen;
- LEAVE hamsterlandschaft ansehen
- FI.
-END PROC hamsterlandschaft ansehen;
-PROC hamsterprogramm ansehen:
- IF programmname <> niltext CAND exists (programmname)
- THEN frage nach diesem programm
- ELSE lasse programm auswaehlen
- FI;
- cursor on;
- stdinfoedit (programmname);
- cursor off;
- regenerate menuscreen.
- frage nach diesem programm:
-
- IF menuno (ueberschrift + anwendungstext (163) + name
- + anwendungstext (164), 5)
- THEN lasse programm auswaehlen
- FI.
- ueberschrift:
- center (maxlaenge, invers (anwendungstext (165))) + ""13""13"".
- name:
- ""13""13" " + invers (programmname) + ""13""13"".
- lasse programm auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ALL myself - infix namen (ALL myself, praefix, flaechentype);
- IF NOT not empty (verfuegbare)
- THEN noch kein programm;
-
- LEAVE hamsterprogramm ansehen
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- programmname := menuone (verfuegbare, anwendungstext (165),
- anwendungstext (166), FALSE);
- IF programmname = niltext
- THEN regenerate menuscreen;
- LEAVE hamsterprogramm ansehen
- FI.
-END PROC hamsterprogramm ansehen;
-PROC hamsterlandschaft drucken:
- lasse flaechen auswaehlen;
- drucke flaechen;
- regenerate menuscreen.
- lasse flaechen auswaehlen:
-
- THESAURUS VAR verfuegbare;
- verfuegbare := ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix);
- IF NOT not empty (verfuegbare)
- THEN noch keine flaeche;
- LEAVE hamsterlandschaft drucken
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- IF ist hamster
- THEN verfuegbare := menusome (verfuegbare, anwendungstext (107),
- anwendungstext (108), FALSE)
- ELSE verfuegbare := menusome (verfuegbare, anwendungstext (137),
-
- anwendungstext (138), FALSE)
- FI.
- drucke flaechen:
- show menuwindow;
- steige ggf bei leerem thesaurus aus;
- menuwindowout (menuwindowcenter (invers (bezeichnung)));
- menuwindowline (2);
- command dialogue (FALSE);
- fuehre einzelne operationen aus;
- command dialogue (TRUE);
- schlage ggf neue seite auf;
- menuwindowout (schlussbemerkung);
- menuwindowstop.
- bezeichnung:
- IF ist hamster THEN anwendungstext (107) ELSE anwendungstext (137) FI.
-
- schlussbemerkung:
- IF ist hamster THEN anwendungstext (110) ELSE anwendungstext (140) FI.
- fuehre einzelne operationen aus:
- INT VAR k;
- FOR k FROM 1 UPTO highest entry (verfuegbare) REP
- IF name (verfuegbare, k) <> ""
- THEN disable stop;
- menuwindowout ( " """ + name (verfuegbare, k) + """ "
- + anwendungstext (201));
- menuwindowline;
- drucke landschaft (name (verfuegbare, k));
- fehlerbehandlung
-
- FI
- PER.
- steige ggf bei leerem thesaurus aus:
- IF NOT not empty (verfuegbare)
- THEN menuwindowline (2);
- IF ist hamster
- THEN menuwindowout (anwendungstext (109))
- ELSE menuwindowout (anwendungstext (139))
- FI;
- menuwindowstop;
- regenerate menuscreen;
- LEAVE hamsterlandschaft drucken
- FI.
- schlage ggf neue seite auf:
- IF remaining menuwindowlines < 7
- THEN menuwindowpage; menuwindowline
-
- ELSE menuwindowline (2)
- FI.
- fehlerbehandlung:
- IF is error
- THEN regenerate menuscreen;
- menuinfo (invers (errormessage));
- clear error; enable stop;
- LEAVE hamsterlandschaft drucken
- FI.
-END PROC hamsterlandschaft drucken;
-PROC hamsterprogramm drucken:
- lasse programme auswaehlen;
- drucke programme;
- regenerate menuscreen.
- lasse programme auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ALL myself - infix namen (ALL myself, praefix, flaechentype);
-
- IF NOT not empty (verfuegbare)
- THEN noch kein programm;
- LEAVE hamsterprogramm drucken
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- verfuegbare := menusome (verfuegbare, anwendungstext (167),
- anwendungstext (168), FALSE).
- drucke programme:
- show menuwindow;
- steige ggf bei leerem thesaurus aus;
- menuwindowout (menuwindowcenter (invers (anwendungstext (167))));
- menuwindowline (2);
- command dialogue (FALSE);
-
- fuehre einzelne operationen aus;
- command dialogue (TRUE);
- schlage ggf neue seite auf;
- menuwindowout (anwendungstext (170));
- menuwindowstop.
- fuehre einzelne operationen aus:
- INT VAR k;
- FOR k FROM 1 UPTO highest entry (verfuegbare) REP
- IF name (verfuegbare, k) <> ""
- THEN disable stop;
- menuwindowout ( " """ + name (verfuegbare, k) + """ "
- + anwendungstext (201));
- menuwindowline;
-
- print (name (verfuegbare, k));
- fehlerbehandlung
- FI
- PER.
- steige ggf bei leerem thesaurus aus:
- IF NOT not empty (verfuegbare)
- THEN menuwindowline (2);
- menuwindowout (anwendungstext (169));
- menuwindowstop;
- regenerate menuscreen;
- LEAVE hamsterprogramm drucken
- FI.
- schlage ggf neue seite auf:
- IF remaining menuwindowlines < 7
- THEN menuwindowpage; menuwindowline
- ELSE menuwindowline (2)
-
- FI.
- fehlerbehandlung:
- IF is error
- THEN regenerate menuscreen;
- menuinfo (invers (errormessage));
- clear error; enable stop;
- LEAVE hamsterprogramm drucken
- FI.
-END PROC hamsterprogramm drucken;
-PROC hamsterlandschaft kopieren:
- ermittle alten flaechennamen;
- erfrage neuen flaechennamen;
- kopiere ggf die flaeche.
- ermittle alten flaechennamen:
- IF NOT not empty (bestand)
- THEN noch keine flaeche;
- LEAVE hamsterlandschaft kopieren
-
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- TEXT VAR alter name := menuone ( bestand, text1, text2, TRUE);
- IF alter name = niltext
- THEN LEAVE hamsterlandschaft kopieren
- FI.
- bestand:
- ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix).
- text1:
- IF ist hamster THEN anwendungstext (111) ELSE anwendungstext (141) FI.
- text2:
- IF ist hamster THEN anwendungstext (112) ELSE anwendungstext (142) FI.
- erfrage neuen flaechennamen:
-
- TEXT VAR neuer name :: menuanswer (ausgabe, alter name, 5).
- ausgabe:
- ueberschrift + hinweis auf alt + bisheriger name + aufforderung.
- ueberschrift:
- IF ist hamster
- THEN center (maxlaenge, invers (anwendungstext (111))) + ""13""13""
- ELSE center (maxlaenge, invers (anwendungstext (141))) + ""13""13""
- FI.
- hinweis auf alt:
- IF ist hamster THEN anwendungstext (113) ELSE anwendungstext (143) FI.
- bisheriger name:
- ""13""13" " + invers (alter name) + ""13""13"".
-
- aufforderung:
- anwendungstext (202).
- kopiere ggf die flaeche:
- IF neuer name = niltext
- THEN menuinfo (invers (anwendungstext (192)));
- LEAVE hamsterlandschaft kopieren
- ELIF exists (praefix + neuer name)
- THEN mache vorwurf;
- LEAVE hamsterlandschaft kopieren
- ELSE copy (praefix + alter name, praefix + neuer name)
- FI.
- mache vorwurf:
- IF ist hamster
- THEN menuinfo (anwendungstext (193))
- ELSE menuinfo (anwendungstext (194))
-
- FI.
-END PROC hamsterlandschaft kopieren;
-PROC hamsterprogramm kopieren:
- ermittle alten programmnamen;
- erfrage neuen programmnamen;
- kopiere ggf das programm.
- ermittle alten programmnamen:
- IF NOT not empty (bestand)
- THEN noch kein programm;
- LEAVE hamsterprogramm kopieren
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- TEXT VAR alter name := menuone ( bestand, anwendungstext (171),
- anwendungstext (172), TRUE);
-
- IF alter name = niltext
- THEN LEAVE hamsterprogramm kopieren
- FI.
- bestand:
- ALL myself - infix namen (ALL myself, praefix, flaechentype).
- erfrage neuen programmnamen:
- TEXT VAR neuer name :: menuanswer (ausgabe, alter name, 5).
- ausgabe:
- ueberschrift + anwendungstext (173) + bisheriger name
- + anwendungstext (202).
- ueberschrift:
- center (maxlaenge, invers (anwendungstext (171))) + ""13""13"".
- bisheriger name:
- ""13""13" " + invers (alter name) + ""13""13"".
-
- kopiere ggf das programm:
- IF neuer name = niltext
- THEN menuinfo (invers (anwendungstext (192)));
- LEAVE hamsterprogramm kopieren
- ELIF exists (neuer name)
- THEN mache vorwurf;
- LEAVE hamsterprogramm kopieren
- ELSE copy (alter name, neuer name)
- FI.
- mache vorwurf:
- menuinfo (anwendungstext (195)).
-END PROC hamsterprogramm kopieren;
-PROC hamsterlandschaft umbenennen:
- ermittle alten flaechennamen;
- erfrage neuen flaechennamen;
-
- benenne ggf die flaeche um.
- ermittle alten flaechennamen:
- IF NOT not empty (bestand)
- THEN noch keine flaeche;
- LEAVE hamsterlandschaft umbenennen
- ELSE biete auswahl an
- FI.
- biete auswahl an:
- TEXT VAR alter name := menuone ( bestand, text1, text2, TRUE);
- IF alter name = niltext
- THEN LEAVE hamsterlandschaft umbenennen
- FI.
- bestand:
- ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix).
- text1:
- IF ist hamster THEN anwendungstext (114) ELSE anwendungstext (144) FI.
-
- text2:
- IF ist hamster THEN anwendungstext (115) ELSE anwendungstext (145) FI.
- erfrage neuen flaechennamen:
- TEXT VAR neuer name :: menuanswer (ausgabe, alter name, 5).
- ausgabe:
- ueberschrift + hinweis auf alt + bisheriger name + aufforderung.
- ueberschrift:
- IF ist hamster
- THEN center (maxlaenge, invers (anwendungstext (114))) + ""13""13""
- ELSE center (maxlaenge, invers (anwendungstext (144))) + ""13""13""
- FI.
- hinweis auf alt:
- IF ist hamster THEN anwendungstext (116) ELSE anwendungstext (146) FI.
-
- bisheriger name:
- ""13""13" " + invers (alter name) + ""13""13"".
- aufforderung:
- IF ist hamster THEN anwendungstext (117) ELSE anwendungstext (147) FI.
- benenne ggf die flaeche um:
- IF neuer name = niltext
- THEN menuinfo (invers (anwendungstext (192)));
- LEAVE hamsterlandschaft umbenennen
- ELIF exists (praefix + neuer name)
- THEN mache vorwurf;
- LEAVE hamsterlandschaft umbenennen
- ELSE rename (praefix + alter name, praefix + neuer name);
-
- flaechenname := neuer name
- FI.
- mache vorwurf:
- IF ist hamster
- THEN menuinfo (anwendungstext (193))
- ELSE menuinfo (anwendungstext (194))
- FI.
-END PROC hamsterlandschaft umbenennen;
-PROC hamsterprogramm umbenennen:
- ermittle alten programmnamen;
- erfrage neuen programmnamen;
- benenne ggf das programm um.
- ermittle alten programmnamen:
- IF NOT not empty (bestand)
- THEN noch kein programm;
- LEAVE hamsterprogramm umbenennen
- ELSE biete auswahl an
-
- FI.
- biete auswahl an:
- TEXT VAR alter name := menuone ( bestand, anwendungstext (174),
- anwendungstext (175), TRUE);
- IF alter name = niltext
- THEN LEAVE hamsterprogramm umbenennen
- FI.
- bestand:
- ALL myself - infix namen (ALL myself, praefix, flaechentype).
- erfrage neuen programmnamen:
- TEXT VAR neuer name :: menuanswer (ausgabe, alter name, 5).
- ausgabe:
- ueberschrift + anwendungstext (176) + bisheriger name
- + anwendungstext (177).
-
- ueberschrift:
- center (maxlaenge, invers (anwendungstext (174))) + ""13""13"".
- bisheriger name:
- ""13""13" " + invers (alter name) + ""13""13"".
- benenne ggf das programm um:
- IF neuer name = niltext
- THEN menuinfo (invers (anwendungstext (192)));
- LEAVE hamsterprogramm umbenennen
- ELIF exists (neuer name)
- THEN mache vorwurf;
- LEAVE hamsterprogramm umbenennen
- ELSE rename (alter name, neuer name);
- programmname := neuer name
-
- FI.
- mache vorwurf:
- menuinfo (anwendungstext (195)).
-END PROC hamsterprogramm umbenennen;
-PROC hamsterlandschaft loeschen:
- lasse flaechen auswaehlen;
- loesche flaechen;
- regenerate menuscreen.
- lasse flaechen auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix);
- IF NOT not empty (verfuegbare)
- THEN noch keine flaeche;
- LEAVE hamsterlandschaft loeschen
- ELSE biete auswahl an
-
- FI.
- biete auswahl an:
- IF ist hamster
- THEN verfuegbare := menusome (verfuegbare, anwendungstext (118),
- anwendungstext (119), FALSE)
- ELSE verfuegbare := menusome (verfuegbare, anwendungstext (148),
- anwendungstext (149), FALSE)
- FI.
- loesche flaechen:
- show menuwindow;
- steige ggf bei leerem thesaurus aus;
- menuwindowout (menuwindowcenter (invers (bezeichnung)));
- menuwindowline (2);
-
- command dialogue (FALSE);
- fuehre einzelne operationen aus;
- command dialogue (TRUE);
- schlage ggf neue seite auf;
- menuwindowout (schlussbemerkung);
- menuwindowstop.
- bezeichnung:
- IF ist hamster THEN anwendungstext (118) ELSE anwendungstext (148) FI.
- schlussbemerkung:
- IF ist hamster THEN anwendungstext (120) ELSE anwendungstext (150) FI.
- fuehre einzelne operationen aus:
- INT VAR k;
- FOR k FROM 1 UPTO highest entry (verfuegbare) REP
- IF name (verfuegbare, k) <> ""
-
- THEN disable stop;
- IF menuwindowyes (" """ + name (verfuegbare, k) + """ "
- + anwendungstext (203))
- THEN forget (praefix + name (verfuegbare, k), quiet)
- FI;
- fehlerbehandlung
- FI
- PER;
- flaechenname := "".
- steige ggf bei leerem thesaurus aus:
- IF NOT not empty (verfuegbare)
- THEN menuwindowline (2);
- IF ist hamster
- THEN menuwindowout (anwendungstext (109))
-
- ELSE menuwindowout (anwendungstext (139))
- FI;
- menuwindowstop;
- regenerate menuscreen;
- LEAVE hamsterlandschaft loeschen
- FI.
- schlage ggf neue seite auf:
- IF remaining menuwindowlines < 7
- THEN menuwindowpage; menuwindowline
- ELSE menuwindowline (2)
- FI.
- fehlerbehandlung:
- IF is error
- THEN regenerate menuscreen;
- menuinfo (invers (errormessage));
- clear error; enable stop;
-
- LEAVE hamsterlandschaft loeschen
- FI.
-END PROC hamsterlandschaft loeschen;
-PROC hamsterprogramm loeschen:
- lasse programme auswaehlen;
- loesche programme;
- regenerate menuscreen.
- lasse programme auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ALL myself - infix namen (ALL myself, praefix, flaechentype);
- IF NOT not empty (verfuegbare)
- THEN noch kein programm;
- LEAVE hamsterprogramm loeschen
- ELSE biete auswahl an
- FI.
-
- biete auswahl an:
- verfuegbare := menusome (verfuegbare, anwendungstext (178),
- anwendungstext (179), FALSE).
- loesche programme:
- show menuwindow;
- steige ggf bei leerem thesaurus aus;
- menuwindowout (menuwindowcenter (invers (anwendungstext (178))));
- menuwindowline (2);
- command dialogue (FALSE);
- fuehre einzelne operationen aus;
- command dialogue (TRUE);
- schlage ggf neue seite auf;
- menuwindowout (anwendungstext (180));
-
- menuwindowstop.
- fuehre einzelne operationen aus:
- INT VAR k;
- FOR k FROM 1 UPTO highest entry (verfuegbare) REP
- IF name (verfuegbare, k) <> ""
- THEN disable stop;
- IF menuwindowyes (" """ + name (verfuegbare, k) + """ "
- + anwendungstext (203))
- THEN forget (name (verfuegbare, k), quiet)
- FI;
- fehlerbehandlung
- FI
- PER;
- programmname := "".
- steige ggf bei leerem thesaurus aus:
-
- IF NOT not empty (verfuegbare)
- THEN menuwindowline (2);
- menuwindowout (anwendungstext (169));
- menuwindowstop;
- regenerate menuscreen;
- LEAVE hamsterprogramm loeschen
- FI.
- schlage ggf neue seite auf:
- IF remaining menuwindowlines < 7
- THEN menuwindowpage; menuwindowline
- ELSE menuwindowline (2)
- FI.
- fehlerbehandlung:
- IF is error
- THEN regenerate menuscreen;
- menuinfo (invers (errormessage));
-
- clear error; enable stop;
- LEAVE hamsterprogramm loeschen
- FI.
-END PROC hamsterprogramm loeschen;
-PROC hamsterinteraktiv laufen lassen:
- frage nach neuer flaeche;
- cursor on;
- IF ist hamster
- THEN hamsterinter (flaechenname)
- ELSE roboterinter (flaechenname)
- FI;
- programmname := "PROTOKOLL";
- cursor off;
- regenerate menuscreen.
- frage nach neuer flaeche:
- IF menuyes (ueberschrift + fragetext, 5)
- THEN lasse flaeche auswaehlen
- ELSE weise auf landschaftsgestaltung hin;
-
- LEAVE hamsterinteraktiv laufen lassen
- FI.
- ueberschrift:
- IF ist hamster
- THEN center (laenge, invers (anwendungstext (122))) + ""13""13""
- ELSE center (laenge, invers (anwendungstext (152))) + ""13""13""
- FI.
- fragetext:
- IF ist hamster
- THEN center (laenge, anwendungstext (123))
- ELSE center (laenge, anwendungstext (153))
- FI.
- laenge:
- IF ist hamster
- THEN max (length (anwendungstext (122)),
- length (anwendungstext (123))) + 5
-
- ELSE max (length (anwendungstext (152)),
- length (anwendungstext (153))) + 5
- FI.
- lasse flaeche auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix);
- IF ist hamster
- THEN flaechenname := menuone (verfuegbare, anwendungstext (122),
- anwendungstext (106), FALSE)
- ELSE flaechenname := menuone (verfuegbare, anwendungstext (152),
- anwendungstext (136), FALSE)
-
- FI;
- IF flaechenname = niltext
- THEN weise auf landschaftsgestaltung hin;
- regenerate menuscreen;
- LEAVE hamsterinteraktiv laufen lassen
- FI.
- weise auf landschaftsgestaltung hin:
- WINDOW VAR mfenster := current menuwindow;
- IF ist hamster
- THEN boxinfo (mfenster, anwendungstext (124), 5, maxint)
- ELSE boxinfo (mfenster, anwendungstext (154), 5, maxint)
- FI.
-END PROC hamsterinteraktiv laufen lassen;
-PROC hamster laufen lassen:
-
- programmname ermitteln;
- BOOL VAR namen eingesetzt :: FALSE;
- untersuche programmdatei auf flaechennamen;
- page;
- geschwindigkeit (5);
- cursor on;
- lauf (programmname);
- cursor off;
- IF namen eingesetzt
- THEN entferne flaechennamen aus programmdatei
- FI;
- regenerate menuscreen.
- programmname ermitteln:
- IF programmname <> niltext CAND exists (programmname)
- THEN frage nach diesem programm
- ELSE lasse programm auswaehlen
- FI.
- frage nach diesem programm:
-
- IF menuno (ueberschrift + anwendungstext (163) + name + anwendungstext (164), 5)
- THEN lasse programm auswaehlen
- FI.
- ueberschrift:
- IF ist hamster
- THEN center (maxlaenge, invers (anwendungstext (125))) + ""13""13""
- ELSE center (maxlaenge, invers (anwendungstext (155))) + ""13""13""
- FI.
- name:
- ""13""13" " + invers (programmname) + ""13""13"".
- lasse programm auswaehlen:
- THESAURUS VAR verfuegbare;
- verfuegbare := ALL myself - infix namen (ALL myself, praefix, flaechentype);
-
- IF ist hamster
- THEN programmname := menuone (verfuegbare, anwendungstext (125),
- anwendungstext (166), TRUE)
- ELSE programmname := menuone (verfuegbare, anwendungstext (155),
- anwendungstext (166), TRUE)
- FI;
- IF programmname = niltext
- THEN LEAVE hamster laufen lassen
- FI.
- untersuche programmdatei auf flaechennamen:
- FILE VAR a :: sequential file (modify, programmname);
- TEXT VAR zeile;
-
- to line (a, 1);
- REP
- read record (a, zeile);
- zeile := compress (zeile);
- IF NOT eof (a) THEN down (a) FI
- UNTIL zeile <> "" OR eof (a) PER;
- IF pos (zeile, "landschaft") = 0 AND pos (zeile, "arbeitsfeld") = 0
- THEN ermittle flaechennamen;
- setze flaechennamen in datei ein
- FI.
- ermittle flaechennamen:
- IF flaechenname <> ""
- THEN frage nach altem flaechennamen
- ELSE lasse flaeche auswaehlen
- FI.
- frage nach altem flaechennamen:
-
- IF ist hamster
- THEN frage nach alter landschaft
- ELSE frage nach altem arbeitsfeld
- FI.
- frage nach alter landschaft:
- IF menuno (ueberschrift + anwendungstext (103)
- + fname + anwendungstext (104), 5)
- THEN lasse flaeche auswaehlen
- FI.
- frage nach altem arbeitsfeld:
- IF menuno (ueberschrift + anwendungstext (133)
- + fname + anwendungstext (134), 5)
- THEN lasse flaeche auswaehlen
- FI.
- fname:
- ""13""13" " + invers (flaechenname) + ""13""13"".
-
- lasse flaeche auswaehlen:
- verfuegbare := ohne praefix (infix namen (ALL myself, praefix, flaechentype), praefix);
- IF ist hamster
- THEN flaechenname := menuone (verfuegbare, anwendungstext (125),
- anwendungstext (106), FALSE)
- ELSE flaechenname := menuone (verfuegbare, anwendungstext (155),
- anwendungstext (136), FALSE)
- FI;
- IF flaechenname = niltext
- THEN regenerate menuscreen;
- landschaftsfehler anzeigen;
-
- LEAVE hamster laufen lassen
- FI.
- landschaftsfehler anzeigen:
- IF ist hamster
- THEN menuinfo (anwendungstext (124))
- ELSE menuinfo (anwendungstext (154))
- FI.
- setze flaechennamen in datei ein:
- to line (a, 1);
- zeile := "landschaft (""" + flaechenname + """);";
- insert record (a);
- write record (a, zeile);
- namen eingesetzt := TRUE.
- entferne flaechennamen aus programmdatei:
- FILE VAR b :: sequential file (modify, programmname);
-
- to line (b, 1);
- REP
- read record (b, zeile);
- IF pos (zeile, "landschaft") = 0 AND pos (zeile, "arbeitsfeld") = 0
- THEN IF NOT eof (b) THEN down (b) FI
- FI
- UNTIL zeile <> "" OR eof (b) PER;
- IF pos (zeile, "landschaft") > 0 OR pos (zeile, "arbeitsfeld") > 0
- THEN delete record (b)
- FI
-END PROC hamster laufen lassen;
-PROC meckere zu langen namen an:
- menuinfo (anwendungstext (191))
-END PROC meckere zu langen namen an;
-PROC meckere existierende flaeche an:
-
- IF ist hamster
- THEN menuinfo (anwendungstext (193))
- ELSE menuinfo (anwendungstext (194))
- FI
-END PROC meckere existierende flaeche an;
-PROC meckere existierendes programm an:
- menuinfo (anwendungstext (195))
-END PROC meckere existierendes programm an;
-PROC noch keine flaeche:
- IF ist hamster
- THEN menuinfo (anwendungstext (196))
- ELSE menuinfo (anwendungstext (197))
- FI
-END PROC noch keine flaeche;
-PROC noch kein programm:
- menuinfo (anwendungstext (198))
-
-END PROC noch kein programm;
-END PACKET ls herbert und robbi 3;
-
-