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/schulis/2.2.1/src/5.thesaurus | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 app/schulis/2.2.1/src/5.thesaurus (limited to 'app/schulis/2.2.1/src/5.thesaurus') 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 erstezeileniltextTHEN 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; + -- cgit v1.2.3