From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- app/baisy/2.2.1-schulis/src/isp.systembaumeditor | 72 ++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 app/baisy/2.2.1-schulis/src/isp.systembaumeditor (limited to 'app/baisy/2.2.1-schulis/src/isp.systembaumeditor') 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; + -- cgit v1.2.3