summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/5.thesaurus
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/5.thesaurus')
-rw-r--r--app/schulis/2.2.1/src/5.thesaurus38
1 files changed, 38 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/5.thesaurus b/app/schulis/2.2.1/src/5.thesaurus
new file mode 100644
index 0000000..571edf9
--- /dev/null
+++ b/app/schulis/2.2.1/src/5.thesaurus
@@ -0,0 +1,38 @@
+PACKET thesauruszeigenDEFINES thesauruszeigenvorbereiten,thesauruszeigen,
+thesaurusblaettern,thesaurusauswahl:LET listenmaskenname="mu objektliste";
+LET niltext="",markoff=" ",markon="x";LET andenanfang=1,andasende=2,vorwaerts
+=3,rueckwaerts=4;LET zeileninliste=18,ausgabelaenge=71;THESAURUS VAR
+dateiliste;TEXT VAR markmerker;INT VAR erstezeile,letztezeile;PROC
+thesauruszeigenvorbereiten(THESAURUS CONST th,BOOL VAR istleer):dateiliste:=
+COMPR th;letztezeile:=highestentry(dateiliste);markmerker:=letztezeile*
+markoff;erstezeile:=1;istleer:=letztezeile=0;END PROC
+thesauruszeigenvorbereiten;PROC thesauruszeigen:standardstartproc(
+listenmaskenname);eineseitezeigen;standardnproc;END PROC thesauruszeigen;
+PROC thesaurusblaettern(INT CONST wohin):INT VAR merkeerstezeile:=erstezeile;
+SELECT wohinOF CASE andenanfang:andendateianfangCASE andasende:andasdateiende
+CASE vorwaerts:vorwaertsblaetternindateiCASE rueckwaerts:
+rueckwaertsblaetternindateiEND SELECT ;IF merkeerstezeile<>erstezeileTHEN
+speicheremarkierungen(merkeerstezeile);eineseitezeigen;ELSE standardmeldung(
+72,niltext);FI ;leave(1).andendateianfang:IF erstezeile<>1THEN erstezeile:=1;
+FI .andasdateiende:IF erstezeile<letztezeile-zeileninliste+1THEN erstezeile:=
+letztezeile-zeileninliste+1;FI .vorwaertsblaetternindatei:IF erstezeile<
+letztezeile-zeileninliste+1THEN erstezeileINCR zeileninliste;FI .
+rueckwaertsblaetternindatei:erstezeile:=max(1,erstezeile-zeileninliste).END
+PROC thesaurusblaettern;THESAURUS PROC thesaurusauswahl:THESAURUS VAR auswahl
+:=emptythesaurus;INT VAR i;speicheremarkierungen(erstezeile);FOR iFROM 1UPTO
+letztezeileREP IF (markmerkerSUB i)=markonTHEN insert(auswahl,name(dateiliste
+,i));FI ;PER ;auswahlEND PROC thesaurusauswahl;PROC speicheremarkierungen(
+INT CONST erstezeile):INT VAR i;FOR iFROM 1UPTO zeileninlisteREP IF
+standardmaskenfeld(2*i)<>niltextTHEN replace(markmerker,erstezeile+i-1,markon
+);ELSE replace(markmerker,erstezeile+i-1,markoff);FI PER END PROC
+speicheremarkierungen;PROC eineseitezeigen:INT VAR i;FOR iFROM 1UPTO
+zeileninlisteREP IF aktzeile<=letztezeileTHEN standardmaskenfeld(eintrag,i*2+
+1);standardmaskenfeld(markiert,i*2);ELSE standardmaskenfeld(spaces,i*2+1);
+standardmaskenfeld(niltext,i*2);feldschutz(i*2);FI PER ;infeld(2).markiert:
+IF (markmerkerSUB (aktzeile))=markonTHEN markonELSE niltextFI .aktzeile:
+erstezeile+i-1.eintrag:text(name(dateiliste,aktzeile),ausgabelaenge).spaces:
+text(niltext,ausgabelaenge).END PROC eineseitezeigen;THESAURUS OP COMPR (
+THESAURUS CONST th):THESAURUS VAR res:=emptythesaurus;TEXT VAR eintrag;INT
+VAR index:=0;get(th,eintrag,index);WHILE index>0REP insert(res,eintrag);get(
+th,eintrag,index);PER ;resEND OP COMPR ;END PACKET thesauruszeigen;
+