app/gs.process/1.02/src/ls-Prozess 4

Raw file
Back to index

(* 
        
         ********************************************************** 
         ********************************************************** 
         **                                                      ** 
         **                     ls-Prozess 4                     ** 
         **                                                      ** 
         **                     Version 1.02                     ** 
         **                                                      ** 
         **                  (Stand : 26.01.90)                  ** 
         **                                                      ** 
         **                                                      ** 
         **                                                      ** 
         **         Autoren: Bruno Pollok, Bielefeld             ** 
         **                  Wolfgang Weber, Bielefeld           ** 
         **                                                      ** 
         **                                                      ** 
         **    Copyright (C) 1988  Eva Latta-Weber, Bielefeld    ** 
         **    Copyright (C) 1990  ERGOS GmbH, Siegburg          ** 
         ********************************************************** 
         ********************************************************** 
 
                                                                           *) 
PACKET ls prozess 4 DEFINES 
           pdv befehlsuebersicht anzeigen,{}           pdv ausgabebefehle anzeigen,{}           pdv eingabebefehle anzeigen,{}           pdv testbefehle anzeigen,{}           pdv weitere befehle anzeigen,{}           pdv bitmuster erlaeutern,{}           pdv symbole erlaeutern,{}           pdv digital analog werte,{}           pdv programm neu erstellen,{}           pdv programm ansehen,{}           pdv programm starten,{}           pdv programm wiederholen,{}           pdv dateien verzeichnis,{}
           pdv datei kopieren,{}           pdv datei umbenennen,{}           pdv dateien loeschen,{}           pdv dateien drucken,{}           init pdv,{}           pdv:{}LET  menukarte       = "ls-MENUKARTE:Prozess",{}     niltext         =         "",{}     maxlaenge       =         45,{}     maxnamenslaenge =         35;{}WINDOW VAR w :: window (1, 3, 79, 19);{}TEXT   VAR programmname :: "";{}BOOL   VAR noch kein programm gelaufen :: TRUE;{}PROC pdv:{}  init pdv;{}  install menu (menukarte, FALSE);{}
  handle menu  ("PDV"){}END PROC pdv;{}PROC init pdv:{}  programmname := "";{}  noch kein programm gelaufen := TRUE;{}  cursor off;{}END PROC init pdv;{}PROC pdv befehlsuebersicht anzeigen:{}  menuinfo (anwendungstext (20)){}END PROC pdv befehlsuebersicht anzeigen;{}PROC pdv ausgabebefehle anzeigen:{}  INT VAR i;{}  REP{}    i := menualternative (anwendungstext (1), anwendungstext (3),{}                          anwendungstext (4), 5, TRUE);{}    SELECT i OF{}      CASE 1, 101: menuinfo (anwendungstext (21)){}
      CASE 2, 102: menuinfo (anwendungstext (22)){}      CASE 3, 103: menuinfo (anwendungstext (23)){}      CASE 4, 104: menuinfo (anwendungstext (24)){}      CASE 5, 105: menuinfo (anwendungstext (25)){}    END SELECT{}  UNTIL i = 6 OR i = 106 PER;{}END PROC pdv ausgabebefehle anzeigen;{}PROC pdv eingabebefehle anzeigen:{}  INT VAR i;{}  REP{}    i := menualternative (anwendungstext (2), anwendungstext (3),{}                          anwendungstext (4), 5, TRUE);{}    SELECT i OF{}      CASE 1, 101: menuinfo (anwendungstext (31)){}
      CASE 2, 102: menuinfo (anwendungstext (32)){}      CASE 3, 103: menuinfo (anwendungstext (33)){}      CASE 4, 104: menuinfo (anwendungstext (34)){}      CASE 5, 105: menuinfo (anwendungstext (35)){}    END SELECT{}  UNTIL i = 6 OR i = 106 PER;{}END PROC pdv eingabebefehle anzeigen;{}PROC pdv testbefehle anzeigen:{}  INT VAR i;{}  REP{}    i := menualternative (anwendungstext (5), anwendungstext (7),{}                          anwendungstext (8), 5, TRUE);{}    SELECT i OF{}      CASE 1, 101: menuinfo (anwendungstext (41)){}
      CASE 2, 102: menuinfo (anwendungstext (42)){}    END SELECT{}  UNTIL i = 3 OR i = 103 PER;{}END PROC pdv testbefehle anzeigen;{}PROC pdv weitere befehle anzeigen:{}  INT VAR i;{}  REP{}    i := menualternative (anwendungstext (6), anwendungstext (7),{}                          anwendungstext (8), 5, TRUE);{}    SELECT i OF{}      CASE 1, 101: menuinfo (anwendungstext (43)){}      CASE 2, 102: menuinfo (anwendungstext (44)){}    END SELECT{}  UNTIL i = 3 OR i = 103 PER;{}END PROC pdv weitere befehle anzeigen;{}
PROC pdv bitmuster erlaeutern:{}  menuinfo (anwendungstext (46)){}END PROC pdv bitmuster erlaeutern;{}PROC pdv symbole erlaeutern:{}  menuinfo (anwendungstext (47)){}END PROC pdv symbole erlaeutern;{}PROC pdv digital analog werte:{}  menuinfo (anwendungstext (48)){}END PROC pdv digital analog werte;{}PROC pdvdateien verzeichnis:{}  disable stop;{}  forget ("Verzeichnis der Dateien", quiet);{}  THESAURUS VAR programme :: ALL myself;{}  FILE VAR f ::{}  sequential file (output, "Verzeichnis der Dateien");{}
  f FILLBY programme;{}  modify (f);{}  to line (f, 1); insert record (f);{}  menufootnote ("Verlassen: <ESC> <q>");{}  cursor on;{}  show (w, f);{}  cursor off;{}  forget ("Verzeichnis der Dateien", quiet);{}  IF is error{}     THEN regenerate menuscreen;{}          out (""7"");{}          menuinfo  (" " + invers ("FEHLER: " + errormessage));{}          clear error{}     ELSE menu bildschirm{}  FI;{}  enable stop{}END PROC pdvdateien verzeichnis;{}PROC pdvprogramm neu erstellen:{}  hole programmname;{}
  kontrolliere den programmnamen;{}  command dialogue (FALSE);{}  cursor on;{}  disable stop;{}  stdinfoedit (programmname, 3);{}  cursor off;{}  command dialogue (TRUE);{}  IF is error{}     THEN regenerate menuscreen;{}          out (""7"");{}          menuinfo  (" " + invers (errormessage));{}          clear error{}     ELSE menu bildschirm{}  FI;{}  enable stop.{}  hole programmname:{}    programmname := "";{}    programmname := menuanswer (ausgabe, programmname, 5).{}  ausgabe:{}    center (maxlaenge, invers ("Programm neu erstellen")) + ""13""13""{}
                 + " Bitte den Namen für das Programm "13""13"".{}  kontrolliere den programmnamen:{}    IF   programmname = niltext{}         THEN LEAVE pdvprogramm neu erstellen{}    ELIF length (programmname) > maxnamenslaenge{}         THEN meckere zu langen namen an;{}              programmname := niltext;{}              LEAVE pdvprogramm neu erstellen{}    ELIF exists (programmname){}         THEN meckere existierendes programm an;{}              LEAVE pdvprogramm neu erstellen{}    FI.{}END PROC pdvprogramm neu erstellen;{}
PROC pdvprogramm ansehen:{}  IF programmname <> niltext CAND exists (programmname){}     THEN frage nach diesem programm{}     ELSE lasse programm auswaehlen{}  FI;{}  cursor on;{}  disable stop;{}  stdinfoedit (programmname, 3);{}  cursor off;{}  IF is error{}     THEN regenerate menuscreen;{}          out (""7"");{}          menuinfo  (" " + invers ("FEHLER: " + errormessage));{}          clear error{}     ELSE menu bildschirm{}  FI;{}  enable stop.{}  frage nach diesem programm:{}    IF menuno (ueberschrift + " Zuletzt bearbeitetes Programm: " + name{}
              + " Soll mit diesem Programm gearbeitet werden", 5){}       THEN lasse programm auswaehlen{}    FI.{}  ueberschrift:{}    center (maxlaenge, invers ("Programm ansehen/ändern")) + ""13""13"".{}  name:{}    ""13""13" " + invers (programmname) + ""13""13"".{}  lasse programm auswaehlen:{}    THESAURUS VAR verfuegbare :: ALL myself;{}    IF NOT not empty (verfuegbare){}       THEN noch kein programm;{}            LEAVE pdvprogramm ansehen{}       ELSE biete auswahl an{}    FI.{}  biete auswahl an:{}
    programmname := menuone (verfuegbare, "Programm ansehen/ändern",{}                             "Bitte das gewünschte Programm ankreuzen!",{}                              FALSE);{}    IF programmname = niltext{}       THEN menu bildschirm;{}            LEAVE pdvprogramm ansehen{}    FI.{}END PROC pdvprogramm ansehen;{}PROC pdvdateien drucken:{}  lasse programme auswaehlen;{}  drucke programme;{}  menu bildschirm.{}  lasse programme auswaehlen:{}    THESAURUS VAR verfuegbare :: ALL myself;{}    IF NOT not empty (verfuegbare){}
       THEN noch kein programm;{}            LEAVE pdvdateien drucken{}       ELSE biete auswahl an{}    FI.{}  biete auswahl an:{}    verfuegbare := menusome (verfuegbare, "Dateien drucken",{}                   "Bitte die Dateien ankreuzen, die gedruckt werden sollen!",{}                    FALSE).{}  drucke programme:{}    show menuwindow;{}    steige ggf bei leerem thesaurus aus;{}    menuwindowout (menuwindowcenter (invers ("Dateien drucken")));{}    menuwindowline (2);{}    command dialogue (FALSE);{}
    fuehre einzelne operationen aus;{}    command dialogue (TRUE);{}    schlage ggf neue seite auf;{}    menuwindowout (" Alle ausgewählten Dateien wurden gedruckt!");{}    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) +{}                              """ wird gedruckt!");{}              menuwindowline;{}
              print (name (verfuegbare, k));{}              fehlerbehandlung{}      FI{}    PER.{}  steige ggf bei leerem thesaurus aus:{}    IF NOT not empty (verfuegbare){}       THEN menuwindowline (2);{}            menuwindowout (" Es wurde keine Datei ausgewählt!");{}            menuwindowstop;{}            menu bildschirm;{}            LEAVE pdvdateien 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; out (""7"");{}            menuinfo  (" " + invers (errormessage));{}            clear error; enable stop;{}            LEAVE pdvdateien drucken{}       ELSE enable stop{}    FI.{}END PROC pdvdateien drucken;{}PROC pdvdatei kopieren:{}  ermittle alten programmnamen;{}  erfrage neuen programmnamen;{}  kopiere ggf das programm.{}  ermittle alten programmnamen:{}    IF NOT not empty (ALL myself){}       THEN noch kein programm;{}
            LEAVE pdvdatei kopieren{}       ELSE biete auswahl an{}    FI.{}  biete auswahl an:{}    TEXT VAR alter name := menuone (ALL myself, "Datei kopieren",{}            "Bitte die Datei ankreuzen, das kopiert werden soll!",FALSE);{}    menu bildschirm;{}    IF alter name = niltext{}       THEN LEAVE pdvdatei kopieren{}    FI.{}  erfrage neuen programmnamen:{}    TEXT VAR neuer name :: menuanswer (ausgabe, alter name, 5).{}  ausgabe:{}     ueberschrift + " Name der 'alten' Datei: " + bisheriger name{}
                  + " Bitte den Namen für die Kopie: ".{}  ueberschrift:{}    center (maxlaenge, invers ("Datei kopieren")) + ""13""13"".{}  bisheriger name:{}    ""13""13" " + invers (alter name) + ""13""13"".{}  kopiere ggf das programm:{}    IF   neuer name = niltext{}         THEN menuinfo (" " + invers ("Der gewünschte Name ist unzulässig!"));{}              LEAVE pdvdatei kopieren{}    ELIF exists (neuer name){}         THEN mache vorwurf;{}              LEAVE pdvdatei kopieren{}       ELSE copy (alter name, neuer name){}
    FI.{}  mache vorwurf:{}    menuinfo (" " + invers ("Eine Datei mit diesem Namen gibt es bereits!")).{}END PROC pdvdatei kopieren;{}PROC pdvdatei umbenennen:{}  ermittle alten programmnamen;{}  erfrage neuen programmnamen;{}  benenne ggf das programm um.{}  ermittle alten programmnamen:{}    IF NOT not empty (ALL myself){}       THEN noch kein programm;{}            LEAVE pdvdatei umbenennen{}       ELSE biete auswahl an{}    FI.{}  biete auswahl an:{}    TEXT VAR alter name := menuone ( ALL myself, "Datei umbenennen",{}
        "Bitte die Datei ankreuzen, die umbenannt werden soll!", FALSE);{}    menu bildschirm;{}    IF alter name = niltext{}       THEN LEAVE pdvdatei umbenennen{}    FI.{}  erfrage neuen programmnamen:{}    TEXT VAR neuer name :: menuanswer (ausgabe, alter name, 5).{}  ausgabe:{}     ueberschrift + " Bisheriger  Dateiname: " + bisheriger name{}                  + " Zukünftiger Dateiname: ".{}  ueberschrift:{}    center (maxlaenge, invers ("Datei umbenennen")) + ""13""13"".{}  bisheriger name:{}
    ""13""13" " + invers (alter name) + ""13""13"".{}  benenne ggf das programm um:{}    IF   neuer name = niltext{}         THEN menuinfo (" " + invers ("Der gewünschte Name ist unzulässig!"));{}              LEAVE pdvdatei umbenennen{}    ELIF exists (neuer name){}         THEN mache vorwurf;{}              LEAVE pdvdatei umbenennen{}       ELSE rename (alter name, neuer name);{}            programmname := neuer name{}    FI.{}  mache vorwurf:{}    menuinfo (" " + invers ("Eine Datei mit diesem Namen gibt es bereits!")).{}
END PROC pdvdatei umbenennen;{}PROC pdvdateien loeschen:{}  lasse programme auswaehlen;{}  loesche programme;{}  menu bildschirm.{}  lasse programme auswaehlen:{}    THESAURUS VAR verfuegbare :: ALL myself;{}    IF NOT not empty (verfuegbare){}       THEN noch kein programm;{}            LEAVE pdvdateien loeschen{}       ELSE biete auswahl an{}    FI.{}  biete auswahl an:{}    verfuegbare := menusome (verfuegbare, "Dateien löschen",{}    "Bitte alle Dateien ankreuzen, die gelöscht werden sollen!", FALSE).{}
  loesche programme:{}    show menuwindow;{}    steige ggf bei leerem thesaurus aus;{}    menuwindowout (menuwindowcenter (invers ("Dateien löschen")));{}    menuwindowline (2);{}    command dialogue (FALSE);{}    fuehre einzelne operationen aus;{}    command dialogue (TRUE);{}    schlage ggf neue seite auf;{}    menuwindowout (" Alle ausgewählten Dateien wurden gelöscht!");{}    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) + """ löschen"){}                 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 (" Es wurde keine Datei ausgewählt!");{}            menuwindowstop;{}
            menu bildschirm;{}            LEAVE pdvdateien 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; out (""7"");{}            menuinfo  (" " + invers (errormessage));{}            clear error; enable stop;{}            LEAVE pdvdateien loeschen{}       ELSE enable stop{}    FI.{}END PROC pdvdateien loeschen;{}
PROC pdvprogramm starten:{}  programmname ermitteln;{}  bildschirm vorbereiten;{}  cursor on;{}  disable stop;{}  warnings off;{}  check on;{}  run pdv (programmname);{}  noch kein programm gelaufen := FALSE;{}  cursor off;{}  IF is error{}     THEN fehler ggf melden;{}          clear error{}     ELSE regenerate menuscreen{}  FI;{}  enable stop.{}  bildschirm vorbereiten:{}    cursor (17, 2); out (waagerecht);{}    cursor (38, 2); out (waagerecht);{}    cursor ( 1, 3); out (""4"");{}    menufootnote ("Programmabbruch: <ESC><h>");{}
    cursor (1, 5);{}    out ("Das Programm wird übersetzt.  Zeilen-Nr.: ").{}  fehler ggf melden:{}    IF errormessage <> ""{}       THEN fehler melden{}    FI.{}  fehler melden:{}    IF   pos (errormessage, "'halt' vom Terminal") > 0{}       THEN regenerate menuscreen;{}            out (""7""); menuinfo (" "15"'halt' vom Terminal "14""){}    ELIF pos (errormessage, "Programm-Abbruch durch <ESC><h>") > 0{}       THEN regenerate menuscreen;{}            out (""7""); menuinfo (" "15"Programm-Abbruch durch <ESC><h> "14""){}
    ELIF pos (errormessage, "(bei Zeile") > 0 AND exists (programmname){}       THEN programm mit fehler im notebook zeigen;{}            regenerate menuscreen{}       ELSE regenerate menuscreen;{}            out (""7""); menuinfo  (" " + invers ("FEHLER: "{}                                        + subtext (errormessage, 1, 61))){}    FI.{}  programm mit fehler im notebook zeigen:{}    noteline;{}    note ("FEHLER: " + errormessage);{}    INT VAR n; FOR n FROM 1 UPTO 9 REP noteline PER;{}    note (""15"Verlassen: <ESC><q> "14"");{}
    FILE VAR p :: sequential file (modify, programmname);{}    to line (p, max (1, fehlerzeile));{}    col (1);{}    clear error;{}    out (""7"");{}    cursor on;{}    noteedit (p);{}    cursor off.{}  fehlerzeile:{}    int (subtext (errormessage, zahlposition)).{}    zahlposition: pos (errormessage, "(bei Zeile") + 10.{}  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 + " Zuletzt bearbeitetes Programm: " +{}               name + " Soll mit diesem Programm gearbeitet werden", 5){}       THEN lasse programm auswaehlen{}    FI.{}  ueberschrift:{}    center (maxlaenge, invers ("Programm starten")) + ""13""13"".{}  name:{}    ""13""13" " + invers (programmname) + ""13""13"".{}  lasse programm auswaehlen:{}    THESAURUS VAR verfuegbare :: ALL myself;{}    IF NOT not empty (verfuegbare){}       THEN noch kein programm;{}            LEAVE pdvprogramm starten{}
       ELSE biete auswahl an{}    FI.{}  biete auswahl an:{}    programmname := menuone (verfuegbare, "Programm starten",{}                    "Bitte das gewünschte Programm ankreuzen!", FALSE);{}    IF programmname = niltext{}       THEN menubildschirm;{}            LEAVE pdv programm starten{}    FI.{}END PROC pdvprogramm starten;{}PROC pdv programm wiederholen:{}  bildschirm vorbereiten;{}  cursor on;{}  disable stop;{}  IF noch kein programm gelaufen{}     THEN errorstop ("Eine Wiederholung ist nicht moeglich!"){}
     ELSE run pdv again{}  FI;{}  cursor off;{}  regenerate menuscreen;{}  IF is error{}     THEN zeige fehler;{}          clear error{}  FI;{}  enable stop.{}  bildschirm vorbereiten:{}    cursor (17, 2); out (waagerecht);{}    cursor (38, 2); out (waagerecht);{}    cursor ( 1, 3); out (""4"");{}    menufootnote ("Programmabbruch: <ESC><h>");{}    cursor (1,3).{}  zeige fehler:{}    out (""7"");{}    IF errormessage = "'run again' nicht moeglich"{}       THEN menuinfo (" "15"Eine Wiederholung ist nicht moeglich! "14""){}
    ELIF pos (errormessage, "'halt' vom Terminal") > 0{}       THEN menuinfo (" "15"'halt' vom Terminal "14""){}    ELIF pos (errormessage, "Programm-Abbruch durch <ESC><h>") > 0{}       THEN menuinfo (" "15"Programm-Abbruch durch <ESC><h> "14""){}       ELSE menuinfo (" " + invers ("FEHLER: "{}                          + subtext (errormessage, 1, 61))){}    FI.{}END PROC pdv programm wiederholen;{}PROC meckere zu langen namen an:{}  menuinfo (" " + invers ("Hier dürfen Namen höchstens "{}                + text (max namenslaenge){}
                + " Zeichen lang sein!")){}END PROC meckere zu langen namen an;{}PROC meckere existierendes programm an:{}  menuinfo (" " + invers ("Ein Programm mit diesem Namen gibt es bereits!")){}END PROC meckere existierendes programm an;{}PROC noch kein programm:{}  menuinfo (" " + invers ("Es existiert noch kein Programm!")){}END PROC noch kein programm;{}PROC menu bildschirm:{}  cursor (1, 2);{}  out (5 * waagerecht);{}  cursor (1, 3);{}  out (""4"");{}  cursor (1,23);{}  out (79 * waagerecht);{}
  refresh submenu{}END PROC menu bildschirm{}END PACKET ls prozess 4{}