summaryrefslogtreecommitdiff
path: root/app/baisy/2.2.1-schulis/src/isp.systembaumeditor
diff options
context:
space:
mode:
Diffstat (limited to 'app/baisy/2.2.1-schulis/src/isp.systembaumeditor')
-rw-r--r--app/baisy/2.2.1-schulis/src/isp.systembaumeditor72
1 files changed, 72 insertions, 0 deletions
diff --git a/app/baisy/2.2.1-schulis/src/isp.systembaumeditor b/app/baisy/2.2.1-schulis/src/isp.systembaumeditor
new file mode 100644
index 0000000..ffd3b6c
--- /dev/null
+++ b/app/baisy/2.2.1-schulis/src/isp.systembaumeditor
@@ -0,0 +1,72 @@
+PACKET systembaumeditorDEFINES startsystembaumeditor,aktuellensenamenlesen,
+baumausdatei,baumausdateizeigen,baumausdateiuebersetzen,
+systembaumreorganisieren,listederteilbaumdateien,listederteilbaeume,
+erwartereaktion,baumaendern,baumloeschen,eingangsbildschirmherstellen,
+internenbaumzeigen,internenbaumuebersetzen:LET z="Teilbaumliste",trenner=",",
+praefix="b.",standardanfang=2,maxfelder=10,reorg=0,dummy="dummy",baumdatei=1,
+teilbaeume=2,maskese1="mb baumdateibearbeitung",maskese2=
+"mb teilbaumbearbeitung",maxnamenlaenge=32,fehldat="Übersetzungsfehler:";;
+BOOL VAR fehler:=FALSE ;FILE VAR f;TEXT VAR namen:="";TEXT VAR dnam:="";;TAG
+VAR aktuellemaske;INT VAR aktuelleposition;ROW 100TEXT VAR feld;INT VAR prog,
+teilbaumzahl;init(feld);PROC startsystembaumeditor(INT CONST kennung):
+werbinich;frageentwicklernachdemnamen;aktuellensenamenlesen.werbinich:TEXT
+VAR maskenname;SELECT kennungOF CASE baumdatei:maskenname:=maskese1CASE
+teilbaeume:maskenname:=maskese2END SELECT ;prog:=kennung.
+frageentwicklernachdemnamen:page;IF exists(dnam)THEN forget(dnam,quiet)FI ;
+IF exists(namen)THEN rename(namen,praefix+namen)FI ;aktuelleposition:=
+standardanfang;standardkopfmaskeausgeben(text(vergleichsknoten));initmaske(
+aktuellemaske,maskenname);show(aktuellemaske).END PROC startsystembaumeditor;
+PROC aktuellensenamenlesen:putget(aktuellemaske,feld,aktuelleposition);namen
+:=eingegebenenamen;loeschemeldung(aktuellemaske).END PROC
+aktuellensenamenlesen;PROC baumausdatei:IF namen=""THEN melde(aktuellemaske,
+43);return(1)ELSE IF istree(namen)THEN meldeohneb;return(1)ELSE f:=
+sequentialfile(output,praefix+namen);close(f);baumausdateizeigenFI FI .
+meldeohneb:melde(aktuellemaske,44).END PROC baumausdatei;PROC
+baumausdateizeigen:store(FALSE );page;TEXT VAR t:=praefix+namen;IF exists(t)
+THEN rename(t,namen)FI ;IF exists(fehldat)THEN forget(fehldat,quiet)FI ;
+editiere(namen,"ae",FALSE );store(TRUE )END PROC baumausdateizeigen;PROC
+systembaumreorganisieren:FILE VAR f:=sequentialfile(output,dummy);close(f);
+dnam:=dummy;baumverarbeitung(dnam,reorg);eingangsbildschirmherstellen(1)END
+PROC systembaumreorganisieren;PROC baumausdateiuebersetzen:translate(namen,
+fehler);rename(namen,praefix+namen);IF fehlerTHEN erwartereaktionELSE
+eingangsbildschirmherstellen(2)FI END PROC baumausdateiuebersetzen;PROC
+baumaendern:baumbearbeiten(1)END PROC baumaendern;PROC baumloeschen:
+baumbearbeiten(2)END PROC baumloeschen;PROC baumbearbeiten(INT CONST wie):
+TEXT VAR t:="";meldesuche;dnam:=subtext(namen,1,maxnamenlaenge);t:=
+bearbeitung(namen,wie);IF (t="")CAND teilbaumzahl=1THEN meldemisserfolg;
+return(1)ELSE loeschemeldung(aktuellemaske);IF loeschenundkeinfehlerTHEN
+eingangsbildschirmherstellen(1);meldeloeschungELSE internenbaumzeigenFI FI .
+meldesuche:melde(aktuellemaske,24).meldemisserfolg:melde(aktuellemaske,25).
+meldeloeschung:melde(aktuellemaske,51).loeschenundkeinfehler:(wie=2)AND (t<>
+"").END PROC baumbearbeiten;PROC internenbaumzeigen:IF exists(fehldat)THEN
+forget(fehldat,quiet)FI ;store(FALSE );page;editiere(dnam,"a",FALSE );store(
+TRUE )END PROC internenbaumzeigen;PROC internenbaumuebersetzen:store(FALSE );
+translate(dnam,fehler);store(TRUE );IF fehlerTHEN erwartereaktionELSE
+eingangsbildschirmherstellen(2)FI END PROC internenbaumuebersetzen;PROC
+listederteilbaeume:meldezusammenstellung;transactionlistederteilbaeume;
+zeigenderteilbaumliste.meldezusammenstellung:melde(aktuellemaske,7).END PROC
+listederteilbaeume;PROC listederteilbaumdateien:melde(aktuellemaske,7);FILE
+VAR f;f:=sequentialfile(output,z);line(f);beginlist;TEXT VAR s:="",t:=" ";
+REP getlistentry(s,t);IF istree(s)THEN put(f,t);put(f,s);line(f)FI UNTIL t=""
+PER ;close(f);sort(z);zeigenderteilbaumliste.END PROC listederteilbaumdateien
+;BOOL PROC istree(TEXT VAR t):INT VAR i;i:=pos(t,praefix);IF i>0THEN t:=3*" "
++subtext(t,i+2,length(t))FI ;i>0END PROC istree;PROC zeigenderteilbaumliste:
+page;editiere(z)END PROC zeigenderteilbaumliste;PROC erwartereaktion:store(
+FALSE );page;store(TRUE );IF fehlerTHEN editiere(fehldat,"a")FI ;END PROC
+erwartereaktion;PROC transactionlistederteilbaeume:f:=sequentialfile(output,z
+);TEXT VAR dateiname:=z;baumverarbeitung(dateiname,1)END PROC
+transactionlistederteilbaeume;PROC translate(TEXT CONST t,BOOL VAR b):TEXT
+VAR dateiname:=t;baumverarbeitung(dateiname,2);b:=(dateiname<>t)END PROC
+translate;TEXT PROC bearbeitung(TEXT CONST t,INT CONST wie):f:=sequentialfile
+(output,dnam);putline(f,t);TEXT VAR dateiname:=dnam;INT VAR methode:=2+wie;
+IF teilbaumzahl>1THEN methodeINCR 2FI ;baumverarbeitung(dateiname,methode);
+dateinameEND PROC bearbeitung;PROC eingangsbildschirmherstellen(INT CONST i):
+reorganizescreen;return(i);IF exists(dnam)THEN forget(dnam,quiet)FI ;
+standardkopfmaskeaktualisierenEND PROC eingangsbildschirmherstellen;TEXT
+PROC eingegebenenamen:IF prog=baumdateiTHEN teilbaumzahl:=1;feld(
+standardanfang)ELSE teilbaumzahl:=0;INT VAR i;TEXT VAR t:="";FOR iFROM
+standardanfangUPTO maxfelderREP IF feld(i)<>""THEN teilbaumzahlINCR 1;IF t<>
+""THEN tCAT trennerFI ;tCAT feld(i)FI PER ;tFI END PROC eingegebenenamen;
+PROC init(ROW 100TEXT VAR feld):INT VAR i;FOR iFROM 1UPTO 100REP feld(i):=""
+PER END PROC init;END PACKET systembaumeditor;
+