diff options
Diffstat (limited to 'hamster/ls-Herbert und Robbi 3')
-rw-r--r-- | hamster/ls-Herbert und Robbi 3 | 929 |
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; - - |