diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2019-02-04 13:09:03 +0100 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2019-02-04 13:09:03 +0100 |
commit | 04e68443040c7abad84d66477e98f93bed701760 (patch) | |
tree | 2b6202afae659e773bf6916157d23e83edfa44e3 /app/schulis/2.2.1/src/0.listen.werkzeuge | |
download | eumel-src-04e68443040c7abad84d66477e98f93bed701760.tar.gz eumel-src-04e68443040c7abad84d66477e98f93bed701760.tar.bz2 eumel-src-04e68443040c7abad84d66477e98f93bed701760.zip |
Initial import
Diffstat (limited to 'app/schulis/2.2.1/src/0.listen.werkzeuge')
-rw-r--r-- | app/schulis/2.2.1/src/0.listen.werkzeuge | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/0.listen.werkzeuge b/app/schulis/2.2.1/src/0.listen.werkzeuge new file mode 100644 index 0000000..011db81 --- /dev/null +++ b/app/schulis/2.2.1/src/0.listen.werkzeuge @@ -0,0 +1,29 @@ +PACKET listenwerkzeugeDEFINES initspalten,setzespaltenbreite, +setzespaltentrenner,spaltenweise,zeile,geblockt,zentriert,zweistellig, +vergleichsdatum:LET maxanzspalten=20,null=0,blank=" ",niltext=""#,andenanfang +=1,ansende=2,vorwaerts=3,rueckwaerts=4,naechstenlesen=1;#;TEXT VAR +zwischenpuffer,spaltentrenner;INT VAR aktspalte,aktmaxanzspalten;ROW +maxanzspaltenINT VAR spaltenbreite;PROC initspalten:INT VAR i;FOR iFROM 1 +UPTO maxanzspaltenREP spaltenbreite(i):=nullPER ;aktmaxanzspalten:=null; +aktspalte:=1;zwischenpuffer:=niltext;spaltentrenner:=blank;END PROC +initspalten;PROC setzespaltenbreite(INT CONST breite):aktmaxanzspaltenINCR 1; +IF aktmaxanzspalten<=maxanzspaltenTHEN spaltenbreite(aktmaxanzspalten):= +breiteFI ;END PROC setzespaltenbreite;PROC setzespaltentrenner(TEXT CONST +trenner):spaltentrenner:=trennerEND PROC setzespaltentrenner;PROC +spaltenweise(TEXT CONST t):IF aktspalte>aktmaxanzspaltenTHEN aktspalte:=1; +zwischenpuffer:=niltextFI ;zwischenpuffer:=zwischenpuffer+text(t, +spaltenbreite(aktspalte));IF aktspalte<aktmaxanzspaltenTHEN zwischenpuffer:= +zwischenpuffer+spaltentrennerFI ;aktspalteINCR 1END PROC spaltenweise;TEXT +PROC zeile:zwischenpufferEND PROC zeile;TEXT PROC geblockt(TEXT CONST links, +rechts,INT CONST breite):links+blanks+rechts.blanks:(breite-length(links)- +length(rechts))*blank.END PROC geblockt;TEXT PROC zentriert(TEXT CONST text, +INT CONST breite):INT CONST blankanzahl:=breite-length(text);TEXT CONST +blanks:=blankausgleich;IF blankanzahlgeradeTHEN blanks+text+blanksELSE blanks ++text+blanks+blankFI .blankausgleich:(blankanzahlDIV 2)*blank. +blankanzahlgerade:blankanzahlMOD 2=0.END PROC zentriert;TEXT PROC zweistellig +(TEXT CONST jahrgang):TEXT VAR puffer;puffer:=text(null)+jahrgang;subtext( +puffer,length(puffer)-1).END PROC zweistellig;INT PROC vergleichsdatum(INT +CONST jahre):INT VAR hilfe;hilfe:=int(subtext(date,7,8));hilfeDECR jahre; +datum(subtext(date,1,6)+text(hilfe)).END PROC vergleichsdatum;END PACKET +listenwerkzeuge; + |