summaryrefslogtreecommitdiff
path: root/prozess/ls-Prozess 4
diff options
context:
space:
mode:
Diffstat (limited to 'prozess/ls-Prozess 4')
-rw-r--r--prozess/ls-Prozess 4606
1 files changed, 570 insertions, 36 deletions
diff --git a/prozess/ls-Prozess 4 b/prozess/ls-Prozess 4
index 158b548..59a1493 100644
--- a/prozess/ls-Prozess 4
+++ b/prozess/ls-Prozess 4
@@ -22,40 +22,574 @@
*)
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{}
+ 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
+