diff options
Diffstat (limited to 'app/schulis/2.2.1/src/5.benennen')
-rw-r--r-- | app/schulis/2.2.1/src/5.benennen | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/5.benennen b/app/schulis/2.2.1/src/5.benennen new file mode 100644 index 0000000..6f67e8a --- /dev/null +++ b/app/schulis/2.2.1/src/5.benennen @@ -0,0 +1,116 @@ +PACKET benennenDEFINES statbenennen:LET statistikdatei="STATISTIK.", +statistikserver="statistik server",maskebenennen="mst statistik benennen", +statistikvorzeilen=3,maxstatistiken=200,maxzeilen=75,maxspalten=50, +minspaltenbreite=4,niltext="",space=" ",meldungzusatz="+",meldungback= +"��������������",alt="alt",meldungrestore=" ",mgibtesnicht=477, +mgibtesschon=485,mspeichern=486,mnichtspeichern=487,mentfernenfrage=488, +mgeloescht=489,mnichtgeloescht=490,fstatnr=2,fbezeichnung=3,fzeilen=4, +fspalten=5,fentfernen=6,pruefeimintervall=3,pruefeobwert=1;TEXT VAR +statistiknummer;FILE VAR stat;PROC statbenennen(INT CONST was):SELECT wasOF +CASE 1:benennenstartprocCASE 2:benennennprocCASE 3: +benennenbearbeitenstartprocCASE 4:benennenbearbeitenspeichernCASE 5: +benennenneustartprocCASE 6:benennenentfernenstartprocCASE 7: +benennenentfernenexec;leave(2)CASE 8:statlistezeigen(int(standardmaskenfeld( +fstatnr)))CASE 9:benennenlistebearbeitenstartprocCASE 10: +benennenlistebearbeitenspeichernCASE 11:benennenlisteentfernenstartprocCASE +12:benennenentfernenexec;enter(1)CASE 13:benennenbearbeitennichtspeichern +CASE 14:benennenentfernennichtloeschen;leave(2)CASE 15: +benennenentfernennichtloeschen;enter(1)CASE 16:benennenentfernennichtloeschen +;leave(3)END SELECT .benennenstartproc:standardstartproc(maskebenennen); +standardmaskenfeld(niltext,fstatnr);benennennproc.benennennproc: +standardmaskenfeld(niltext,fbezeichnung);feldschutz(fbezeichnung); +standardmaskenfeld(niltext,fzeilen);feldschutz(fzeilen);standardmaskenfeld( +niltext,fspalten);feldschutz(fspalten);feldschutz(fentfernen);feldfrei( +fstatnr);infeld(fstatnr);standardnproc.benennenbearbeitenstartproc:IF NOT +nummerokTHEN leave(1);ELIF NOT statistikexistiert(statnummer)THEN statmeldung +(mgibtesnicht);infeld(fstatnr);leave(1);ELSE benennenfreigebenundnproc;FI . +benennenbearbeitenspeichern:IF NOT eingabenokTHEN leave(1);ELIF NOT ( +statistiknummer=statnummer)AND statistikexistiert(statnummer)THEN statmeldung +(mgibtesschon);infeld(fstatnr);leave(1);ELSE statmeldung(mspeichern); +statistikspeichern(statistiknummer,statnummer);standardmaskenfeld(niltext, +fstatnr);leave(2);FI .benennenneustartproc:IF NOT nummerokTHEN leave(1);ELIF +statistikexistiert(statnummer)THEN statmeldung(mgibtesschon);infeld(fstatnr); +leave(1);ELSE benennenfreigeben;statistiknummer:=statnummer;standardnprocFI . +benennenentfernenstartproc:IF NOT nummerokTHEN leave(1);ELIF NOT +statistikexistiert(statnummer)THEN statmeldung(mgibtesnicht);infeld(fstatnr); +leave(1);ELSE benennenschuetzenundnproc;FI .benennenschuetzenundnproc: +benennenausfuellen(statnummer);feldschutz(fstatnr);feldschutz(fbezeichnung); +feldschutz(fzeilen);feldschutz(fspalten);infeld(fstatnr); +standardfelderausgeben;statmeldung(mentfernenfrage);infeld(fentfernen); +standardnproc.benennenfreigebenundnproc:benennenausfuellen(statnummer); +benennenfreigeben;statistiknummer:=statnummer;standardnproc.benennenfreigeben +:feldfrei(fbezeichnung);feldfrei(fzeilen);feldfrei(fspalten);feldschutz( +fentfernen);statnummerIN fstatnr;infeld(fbezeichnung).benennenentfernenexec: +statistikloeschen(statnummer);statmeldung(mgeloescht);standardmaskenfeld( +niltext,fstatnr).benennenlistebearbeitenstartproc:statlistebearbeiten( +maskebenennen);IF statlisteeintrag>niltextTHEN standardmaskenfeld( +statlisteeintrag,fstatnr);benennenfreigebenundnproc;ELSE standardmaskenfeld( +niltext,fstatnr);leave(2);FI .benennenlistebearbeitenspeichern:IF NOT +eingabenokTHEN leave(1);ELIF NOT (statistiknummer=statnummer)AND +statistikexistiert(statnummer)THEN statmeldung(mgibtesschon);infeld(fstatnr); +leave(1);ELSE statmeldung(mspeichern);statistikspeichern(statistiknummer, +statnummer);enter(1);FI .benennenlisteentfernenstartproc:statlistebearbeiten( +maskebenennen);IF statlisteeintrag>niltextTHEN standardmaskenfeld( +statlisteeintrag,fstatnr);benennenschuetzenundnproc;ELSE standardmaskenfeld( +niltext,fstatnr);leave(2);FI .benennenbearbeitennichtspeichern:statmeldung( +mnichtspeichern);standardmaskenfeld(niltext,fstatnr);leave(2). +benennenentfernennichtloeschen:statmeldung(mnichtgeloescht); +standardmaskenfeld(niltext,fstatnr).nummerok:INT VAR status;standardpruefe( +pruefeimintervall,fstatnr,1,maxstatistiken,niltext,status);IF status>0THEN +infeld(status)FI ;status=0.eingabenok:IF nummerokTHEN standardpruefe( +pruefeobwert,fbezeichnung,0,0,niltext,status);FI ;IF status=0THEN +standardpruefe(pruefeimintervall,fzeilen,1,maxzeilen,niltext,status);FI ;IF +status=0THEN standardpruefe(pruefeimintervall,fspalten,1,maxspalten,niltext, +status);FI ;IF status>0THEN infeld(status);FI ;status=0.statnummer:text(int( +standardmaskenfeld(fstatnr))).END PROC statbenennen;PROC statmeldung(INT +CONST meldungnummer):standardmeldung(meldungnummer,standardmaskenfeld(fstatnr +)+meldungzusatz);END PROC statmeldung;PROC benennenausfuellen(TEXT CONST +statnummer):TEXT VAR bezeichnung;INT VAR wert;forget(statistikdatei+ +statnummer,quiet);fetch(statistikdatei+statnummer,task(statistikserver));stat +:=sequentialfile(input,statistikdatei+statnummer);standardmaskenfeld( +statnummer,fstatnr);getline(stat,bezeichnung);standardmaskenfeld(bezeichnung, +fbezeichnung);get(stat,wert);standardmaskenfeld(text(wert),fzeilen);get(stat, +wert);standardmaskenfeld(text(wert),fspalten);forget(statistikdatei+ +statnummer,quiet);END PROC benennenausfuellen;BOOL PROC statistikexistiert( +TEXT CONST statnummer):exists(statistikdatei+statnummer,task(statistikserver) +)END PROC statistikexistiert;PROC statistikloeschen(TEXT CONST statnummer): +IF statistikexistiert(statnummer)THEN commanddialogue(FALSE );erase( +statistikdatei+statnummer,task(statistikserver));commanddialogue(TRUE );FI ; +END PROC statistikloeschen;PROC statistikspeichern(TEXT CONST altername, +neuername):INT VAR zeilenneu:=int(standardmaskenfeld(fzeilen)),spaltenneu:= +int(standardmaskenfeld(fspalten)),benennenneu:=zeilenneu*spaltenneu,zeilenalt +,spaltenalt,benennenalt,zaehl,zeile,spalte;TEXT VAR dateizeile;FILE VAR +statalt;forget(statistikdatei+altername,quiet);forget(statistikdatei+ +neuername,quiet);IF NOT statistikexistiert(altername)THEN +erzeugeneuestatistikELSE aenderealtestatistik;statistikloeschen(altername); +FI ;sichereneuestatistik.erzeugeneuestatistik:erzeugestatistikmitneuemnamen; +display(meldungback);FOR zaehlFROM benennenneuDOWNTO 1REP line(stat);cout( +zaehl);PER ;display(meldungrestore).erzeugestatistikmitneuemnamen:stat:= +sequentialfile(output,statistikdatei+neuername);putline(stat, +standardmaskenfeld(fbezeichnung));dateizeile:=text(zeilenneu)+space+text( +spaltenneu)+space;FOR zaehlFROM 1UPTO spaltenneuREP dateizeileCAT text( +minspaltenbreite);dateizeileCAT space;PER ;putline(stat,dateizeile);line(stat +).sichereneuestatistik:save(statistikdatei+neuername,task(statistikserver)); +forget(statistikdatei+neuername,quiet).aenderealtestatistik:forget( +statistikdatei+alt,quiet);fetch(statistikdatei+altername,task(statistikserver +));rename(statistikdatei+altername,statistikdatei+alt);statalt:= +sequentialfile(input,statistikdatei+alt);getline(statalt,dateizeile);get( +statalt,zeilenalt);get(statalt,spaltenalt);benennenalt:=zeilenalt*spaltenalt; +IF zeilenalt<>zeilenneuOR spaltenalt<>spaltenneuTHEN aenderedieganzestatistik +ELIF dateizeile<>standardmaskenfeld(fbezeichnung)THEN aenderediedateizeile +ELSE rename(statistikdatei+alt,statistikdatei+neuername);FI . +aenderediedateizeile:modify(statalt);tofirstrecord(statalt);writerecord( +statalt,standardmaskenfeld(fbezeichnung));rename(statistikdatei+alt, +statistikdatei+neuername).aenderedieganzestatistik: +erzeugestatistikmitneuemnamen;modify(statalt);zaehl:=benennenneu;display( +meldungback);FOR zeileFROM 1UPTO min(zeilenalt,zeilenneu)REP +uebertrageeinezeileausaltinneu;PER ;FOR zeileFROM zeilenalt+1UPTO zeilenneu +REP schreibeeineleerezeile;PER ;display(meldungrestore);forget(statistikdatei ++alt,quiet).uebertrageeinezeileausaltinneu:toline(statalt,statistikvorzeilen+ +(zeile-1)*spaltenalt+1);FOR spalteFROM 1UPTO min(spaltenalt,spaltenneu)REP +readrecord(statalt,dateizeile);putline(stat,dateizeile);down(statalt);zaehlen +PER ;FOR spalteFROM spaltenalt+1UPTO spaltenneuREP line(stat);zaehlenPER . +schreibeeineleerezeile:FOR spalteFROM 1UPTO spaltenneuREP line(stat);zaehlen +PER .zaehlen:cout(zaehl);zaehlDECR 1.END PROC statistikspeichern;END PACKET +benennen; + |