-ATEXT =001FBdT TTT!T) . Erstellen eines Inhaltsverzeichnisses mit Kapitelnumern.. Es wird ein Inhaltsverzeichnis erstellt. Gleichzeitig k|nnen auch die. Kapitelnummern neu vergeben werden.. . Um eine Kapitel-]berschrift finden zu k|nnen, mu~ vor der ]berschrift ein. codiertes $-Zeichen im Text vorhanden sein. . . Wird ein $-Zeichen gefunden, wird die ganze Zeile abgespeichert und die   . Seitennummer gemerkt. Wird ein $-Zeichen ohne nachfolgende Kapitelnummer. gefunden, wird diese Zeile, ohne eine Kapitelnummer einzuf}gen, abge-. speichert (kann f}r Folgezeilen einer Kapitel-]berschrift benutzt werden).. . Sollen die Kapitelnummern auf den neuesten Stand gebracht werden, mu~ . hinter dem $-Zeichen die Form der Kapitelnummer vorhanden sein (z.B. $1.1).. Die Form der Kapitelnummer wird ermittelt und aus dem Text gel|scht. Die . neu erstellte Kapitelnummer wird dann in den Text eingef}gt. Der Inhalt. einer Kapitelnummer ist ohne Bedeutung, da die Kapitelnummer in jedem Fall. neu ermittelt wird. Ist hinter einem $-Zeichen keine Kapitelnummer vorhanden,. wird keine Bearbeitung der Kapitelnummer in dieser Zeile vorgenommen.. . Zwischen der Kapitel-]berschrift und der Seitennumer k|nnen wahlweise. Punkte oder Tab's eingef}gt werden.. . Das Inhaltsverzeichnis kann an jeder beliebigen Position im Text eingef}gt . werden. Soll es auf Seite 1 stehen, kann bei der Seitennumerierung der. Kapitel}berschriften angegeben werden, ob das Inhaltsverzeichnis mitgez{hlt. werden soll.. . Das Inhaltsverzeichnis wird umbrochen..  3-002EBdT TTT!T) programm Inhalt..  ------daten.Num1 nummer.Num2 nummer.Akt-seitenummer.I-seite nummer.!)** Seite, auf der das IV beginnt.Ai-seitenummer1.!)** Seitenanfang des IVAi-zeilenummer.!)** Zeilenanfang des IVEi-seitenummer.!)** Seitenende des IVEi-zeilenummer.!)** Zeilenende des IVS-anzahlnummer.!)** Gesamte Seitenanzahl 3Punkte <1>.!)** Kennzeichen, ob Punkte als LinieSeite <1>.!)** Kennzeichen, auf welcher Seite die. !) ]berschrift beginnen soll.Gefunden<1>.!)** Kennzeichen, ob ]berschrift gefundenIv <1>.!)** Iv enth{lt weiteren TextTab-positnummer.!)** Spaltennummer der l{ngsten ZeileTab1 nummer.!)** Spaltennummer der l{ngsten Kapitelnr Datei datei<8>.!)** Enth{lt die Titel und SeitennummernEinf-seitezahl <4> 1 form ( /). )** Seite in Text einf}gen, rechtsb}ndigSeiten-zahlzahl <4> 1.!)** Anzeige f}r die Seiten-zahlMarke #150.!)** Markierung einer Titel-Zeile (cod$)Kapitel-nr.(7)nummer.!)** Lfd. KapitelnummernZ{hler nummer.!)** Index f}r Kapitel-Tabelle #Text-feldtext<14>.!)** Zum Erstellen der KapitelnrAscii-feldtext <100>.Alpha-feld<100>.!)** Alpha-feld zum Einlesen der Kapitel-. !) }berschrift, um R{nder, Tabs und. !) Codierzeichen zu eliminieren.T-zg zeigertext. -01B2BdT TTT!T) _anfang. hole verwaltung 1 Alph. wenn nicht Alph : springe _anf-richtig. anzeigen fehler "Bitte }ber Funktion P aufrufen". r}cksprung._anf-richtig. t hole seitennummer Akt-seite. hilfe "nb"..----------------------------------------------------------------------------.------ Frage, ob die Kapitelnummern }berarbeitet werden sollen .----------------------------------------------------------------------------_neu-eing-1. eingeben neu zeile 1  "Sollen die Kapitelnummern }berarbeitet werden (j/n)? " Zch1 _ende. gro~schreibung Zch1. wenn Zch1 nicht = "J" und Zch1 nicht = "N" : springe _neu-eing-1. wenn Zch1 = "J" : setze Kapitel..----------------------------------------------------------------------------.------ Frage, statt eines Tabs Punkte in das Inhaltsverzeichnis einf}gen .----------------------------------------------------------------------------_neu-eing-2. eingeben neu zeile 1 "Zwischen Kapitel-]berschrift und Seitennummer" " Punkte einf}gen (j/n)? " Zch1 _ende. gro~schreibung Zch1.  wenn Zch1 nicht = "J" und Zch1 nicht = "N" : springe _neu-eing-2. wenn Zch1 = "J" : setze Punkte. anzeigen neu zeile 1 "Bitte warten"..---------------------------------------------------------------------------- 5 s.------ L|schen des alten Inhaltsverzeichnisses, falls vorhanden..------ Die beiden Titel dienen zur Bestimmung der L{nge ( = n4 ) des.------ Verzeichnisses.----------------------------------------------------------------------------  t unsichtbar. t posit titel "Inhaltsverzeichnis" _prog-anfang. t hoch zeile. t hole zeilennummer Ai-zeile. 65 t hole seitenanzahl S-anzahl. rechne Text-seite = Ei-seite + 1. ** auf 1. Seite nach dem Verzeichnis t posit seite Text-seite _inhalt-anf. ** postitionieren und das Zeilen- t hole lineal Lineal. ** lineal merken._inhalt-anf. t posit seite Ai-seite zeile Ai-zeile spalte 1. setze n1 = Ai-seite. wenn n1 = Ei-seite : t l|schen bis Ei-zeile 1.  : t l|schen zeile.  : t anfang seite.  : springe _leere-seite. 76I   : t n{chste zeile. ** Seitentrennung positionieren 87  : rechne n1 + 1.  : springe _inhalt-l|schen. t hole zeilennummer n2. rechne n2 + Ei-zeile. t l|schen bis n2 1. t l|schen zeile. t anfang seite._leere-seite. wenn nicht tz : t n{chste zeile _s-ende _s-ende.  : springe _leere-seite. setze Iv. springe _prog-anfang._s-ende. wenn Ei-seite = S-anzahl : t posit zeile 0. ! : t l|sche seite. : a datei schlie~en. a datei l|schen Datei._datei-anlegen. a datei anlegen Datei Num1 _datei-fehler..----------------------------------------------------------------------------.------ Suchen der Kapitel-]berschriften anhand eines codierten $-Zeichens.---------------------------------------------------------------------------- anzeigen zeile 2 spalte 33 " "._marke-suchen. anzeigen zeile 2 spalte 33 Seiten-zahl. ** aktuelle Seiten-zahl  wenn tr nicht = Marke : weiter tz bis zeichen Marke _zeilen-ende. setze Gefunden.! ** Kapitel-]berschrift gefunden weiter tz. weiter tz solange spalte. wenn tr < "0" oder tr > "9" : setze Folgezeile. ! : springe _}berschrift.. Die Kapitelnummer mu~ unmittelbar hinter dem $-Zeichen stehen, sonst. wird sie nicht als solche erkannt. setze Z{hler = 1.!) ** Z{hler der Kapitelnummern  hole index Num1 von tz.!) ** Position der Kapitelnummer.----------------------------------------------------------------------------.------ Form einer Kapitelnummer feststellen (z.B. ob 1. oder 1.1 oder 1.1.1).----------------------------------------------------------------------------_punkt-such.  wenn tr nicht numerisch : springe _kapitel-ende. ** Ende der Kap-nr.  wenn tr = "." : weiter tz. /   : wenn tr nicht < "0" und tr nicht > "9" : rechne Z{hler + 1.   : : weiter tz.  sonst : weiter tz.  springe _punkt-such. / wenn nicht Kapitel : springe _}berschrift. ** Keine Kapitelnummern.----------------------------------------------------------------------------.------ Alte Kapitelnummer aus dem Text l|schen.---------------------------------------------------------------------------- zur}ck tz bis index Num1.) ** Anfangsposition der Kapitelnr t l|sche wort.!) ** Kapitelnummer l|schen  wenn Z{hler > 7 : setze Z{hler = 7. ** max. 7 Kapitelnummern m|glich rechne Kapitel-nr.(Z{hler) + 1.) ** Letzte Nummer um 1 erh|hen setze Num1 = 1. l|sche Text-feld.!) ** Neue Kapitelnummer.----------------------------------------------------------------------------.------ Kapitelnummer neu erstellen.----------------------------------------------------------------------------_kapitel-nr. wenn Kapitel-nr.(Num1) = 0 : setze Kapitel-nr.(Num1) = 1.  bilde Text-feld + Kapitel-nr.(Num1).19** Kapitelnummer wenn Num1 = Z{hler : springe _kapitel-l|sch. rechne Num1 + 1.!)19** N{chste Kapitel-nr bilde Text-feld + ".".!)** Punkt zwischen 2 Kapitelnummern  springe _kapitel-nr..----------------------------------------------------------------------------.------ Die in der Form nicht vorhandenen Kapitelnummern l|schen .----------------------------------------------------------------------------_kapitel-l|sch. setze Num1 = Z{hler.!)1 ** Letzte Kapitelnummer_l|sch-1.  wenn Num1 = 7 : springe _kapitel-einf. ** Maximal 7   rechne Num1 + 1.!)1 ** N{chstfolgende l|schen  l|sche Kapitel-nr.(Num1).  springe _l|sch-1..----------------------------------------------------------------------------.------ Neue Kapitelnummer in den Text einf}gen .----------------------------------------------------------------------------_kapitel-einf. bilde tz < Text-feld.!)** Kapitelnummer einf}gen.----------------------------------------------------------------------------.------ Kapitel-]berschrift mit Seitennummer in die Datei "Inhalt" schreiben.----------------------------------------------------------------------------_}berschrift. zur}ck tz bis zeichen Marke.  t lesen zeile Alpha-feld. setze Ascii-feld = Alpha-feld. setze Ascii-feld = Ascii-feld.. die Zeile wird in ein Alpha-feld gelesen, um Tab's, R{nder oder Codier-. zeichen zu l|schen. Um Leerzeichen zu entfernen, wird das Alpha-feld an-. schlie~end in ein Text-feld (Ascii-feld) gesetzt und dieses wieder auf sich.  wenn nicht Ascii-feld : weiter tz.   : springe _marke-suchen.. eliminieren von Leerzeilen.  a zeile schreiben Ascii-feld. wenn nicht Folgezeile : a zeile schreiben Einf-seite. ** Seitennummer . l|sche Folgezeile.. F}r Folgezeilen werden keine Seitennummern geschrieben..-----------------------------------------------------------------------------.------ L{nge der Kapitelnummer und des Textes ermitteln..-----------------------------------------------------------------------------  setze zeiger T-zg = Ascii-feld.<1>. weiter T-zg solange zeichen "0123456789.". ** Ende der Kapitelnummer 1.----------------------------------------------------------------------------_zeilen-ende. t n{chste zeile _text-ende _seiten-ende. springe _marke-suchen..----------------------------------------------------------------------------.------ Neue Seite.----------------------------------------------------------------------------_seiten-ende. t tief seite _text-ende. rechne Einf-seite + 1. setze Seiten-zahl = Einf-seite. ** f}r die Anzeige in Zeile 2  springe _marke-suchen..----------------------------------------------------------------------------.------ Ende des Textes.----------------------------------------------------------------------------_text-ende. wenn nicht Gefunden  : anzeigen fehler "Keine Kapitel}berschrift gefunden". : springe _datei-l|schen. a datei schlie~en. ** damit kommt man wieder an den a datei |ffnen Datei. ** Anfang der Datei t posit seite Akt-seite. 2|.----------------------------------------------------------------------------.------ Frage, auf welcher Seite das Inhaltsverzeichnis stehen soll und ob.------ das Inhaltsverzeichnis bei der Numerierung der Kapitel}berschriften.------ mitgez{hlt werden soll..---------------------------------------------------------------------------- setze I-seite = Ai-seite. 2_eingabe-neu. wenn I-seite = 1 : eingeben neu zeile 1 "Bei Seitennumerierung der ]berschriften " "Inhaltsverzeichnis mitz{hlen (j/n)? " Zch1 _datei-ende.  : gro~schreibung Zch1.   : wenn Zch1 nicht = "J" und Zch1 nicht = "N" !: springe _eingabe-neu.   : wenn Zch1 = "N" : setze Seite.  :!) : setze Zch = "N". ;   sonst : setze Seite. anzeigen neu zeile 1  "Das Inhaltsverzeichnis wird erstellt - Bitte warten". wenn Iv und I-seite = Ai-seite   : t posit seite Ai-seite zeile Ai-zeile.  : springe _weiter. sonst : l|sche Iv. @; wenn nicht Punkte : rechne Tab-posit + 1. t hole breite Num1. rechne Num2 = Tab-posit + 6. wenn Num1 < Num2 : t setze breite Num2.  : anzeigen fehler "Die Schreibbreite im Inhaltsverzeichnis wird breiter gesetzt!". #@ weiter tz solange zeichen "0123456789 .". ** Text suchen t hole spaltennummer n2..-----------------------------------------------------------------------------.------ Leerzeichen zwischen Kapitel-Nummer und Kapitel-]berschrift einf}gen.------ bzw. l|schen..-----------------------------------------------------------------------------_leer-einf. wenn n2 < Tab1 : bilde tz < " ".  : rechne n2 + 1.  : springe _leer-einf. $"  sonst : wenn n2 > Tab1 : rechne n2 - Tab1.  : : zur}ck tz bis spalte Tab1.  : : t l|sche zeichen n2..-----------------------------------------------------------------------------.------ Seitennummer in das Inhaltsverzeichnis einf}gen..------ Bei einer Folgezeile wird keine Seitennummer eingetragen..----------------------------------------------------------------------------- l|sche Ascii-feld. ># a zeile lesen Ascii-feld _ende-folge-z. ** Seitennummer lesen setze Ascii-feld = Ascii-feld. wenn Ascii-feld nicht numerisch  : weiter tz bis ende.  : bilde tz < z-fzs.  : t zeilenschaltung. &>.------ Wenn keine Punkte eingef}gt werden sollen, nur Tab einf}gen.---------------------------------------------------------------------------- wenn nicht Punkte : bilde tz < "#002" Zch1 "#002" Einf-seite z-fzs.  : springe _zeile-einf}g..----------------------------------------------------------------------------.------ Punkte zwischen ]berschrift und Seitennummer einf}gen.----------------------------------------------------------------------------_punkt-einf}g. '% t hole spaltennummer Num1. wenn Num1 = Tab-posit : springe _punkt-ende. bilde tz < ".". weiter tz. springe _punkt-einf}g._punkt-ende. bilde tz < Einf-seite z-fzs. springe _zeile-einf}g..----------------------------------------------------------------------------.------ Ist die letzte Zeile eine Folgezeile, mu~ f}r den Titel "ende-inhalt".------ noch eine neue Zeile eingef}gt werden..----------------------------------------------------------------------------(&_ende-folge-z. weiter tz bis ende. t zeilenschaltung..----------------------------------------------------------------------------.------ Inhaltsverzeichnis umbrechen und.------>Seitenanzahl des Inhaltsverzeichnisses bestimmen.----------------------------------------------------------------------------_seiten-zahl. t einf}gen titel "ende-inhalt". t holen seitenanzahl n1. **Anzahl Seiten vor Umbruch 4', wenn I-seite > n1 : setze I-seite = n1. <? rechne n3 = n2 - n1. **Zahl, die aufaddiert wird rechne n3 + 1. **L{nge des Inhaltsverzeichnisses  setze n2 = n3. .----------------------------------------------------------------------------.------>Seiten-Zahl im Inhaltsverzeichnis {ndern.----------------------------------------------------------------------------_seite-posit. t posit titel "Inhaltsverzeichnis". t n{chste zeile. =< vergleiche tr mit z-fzs _n{chste-zeile. setze Einf-seite = tz. wenn Seite : wenn Einf-seite < I-seite : springe _n{chste-zeile.  : sonst : l|sche Seite. rechne Einf-seite + n3. ,=.----------------------------------------------------------------------------.------ Datei Ende.----------------------------------------------------------------------------_datei-ende. t positioniere seite I-seite. t anfang seite. t darstellen..----------------------------------------------------------------------------.------ Hilfsdatei wieder l|schen.----------------------------------------------------------------------------_datei-l|schen. a datei schlie~en. -+ a datei l|schen Datei..----------------------------------------------------------------------------.------ Programm Ende (R}cksprung ins Text-Bearbeiten).----------------------------------------------------------------------------_ende. l|schen zeile 1. r}cksprung..----------------------------------------------------------------------------.------ Fehler .----------------------------------------------------------------------------_datei-fehler. ,W anzeigen fehler "Fehler: " Num1 " beim \ffnen der Hilfsdatei". springe _ende. 0 hole index Num1 von T-zg. ** L{nge d. Kapitelnummer rechne Num1 + 2. ** + 2 Leerzeichen wenn Num1 > Tab1 : setze Tab1 = Num1. _kapitel-ende. 1.'  weiter T-zg solange zeichen " ". ** Textanfang posit.  hole index Num1 von T-zg. ** Textanfang ermitteln  weiter T-zg bis ende. ** Textende posit  hole index Num2 von T-zg. ** Textende ermitteln 0  rechne Num2 - Num1. ** relative Textl{nge  wenn Num2 > Tab-posit : setze Tab-posit = Num2..----------------------------------------------------------------------------.------ Neue Zeile  anzeigen neu zeile 1 "Auf welcher Seite soll das Inhaltsverzeichnis " "stehen? " I-seite. {ndern spalte 55 I-seite _datei-ende. wenn I-seite = 0 : setze I-seite = 1. 7Text-seitenummer.!)** 1. Seite nach dem InhaltsverzeichnisLineal <60>.!)** Zeilenlineal.Alph <1>.Zch1 <1>.Zch <1>..Flags.----Folgezeile<1>.!)** Kennzeichen f}r Folgezeilen.Kapitel <1>.!)** Kennzeichen, ob Kapitelnr vergeben ?( t umbruch I-seite I-seite. **Umbruch des IV's t posit titel "ende-inhalt". ** Pr}fen, ob dieser Titel allein t hoch zeile 2. auf einer Seite steht. Falls ja, wenn tr = z-seite : t l|sche seite. Seitentrennung vor Titel l|schen wenn Iv und I-seite < n1 : springe _seite-z. wenn Seite : wenn I-seite = 1 oder I-seite nicht < n1 : springe _datei-ende._seite-z.   t hole seitennummer Ai-seite. t posit titel "ende-inhalt" _ende. t hoch zeile. t hole zeilennummer Ei-zeile. ** letzte Zeile des IV's t hole seitennummer Ei-seite. ** letzte Seite des IV's `_inhalt-l|schen. wenn n1 nicht = Ei-seite : t l|sche seite. ** Inhalt der Seite l|schen d   : t l|sche seite. ** Seitentrennung l|schen ! : t hoch zeile. 9 ! : springe _prog-anfang. t n{chste zeile. t l|schen seite.  t anfang seite. t l|schen zeile. t setze lineal Lineal. :85_prog-anfang. t posit seite 1 zeile 1 spalte 1. 9F.----------------------------------------------------------------------------.------ Hilfsdatei anlegen.---------------------------------------------------------------------------- s system Num1 Num2. bilde Text-feld = "inhalt" Num1. setze Datei = Text-feld. a datei |ffnen Datei Num1 _datei-anlegen. !  t positioniere seite I-seite _seite-anh{ngen. hilfe " ". t anfang seite. t einf}gen seite. t hoch seite. springe _weiter._seite-anh{ngen. t ende seite.!** Inhaltsverzeichnis an den Schlu~ des Textes t einf}gen seite.! plazieren._weiter. t einf}gen titel "Inhaltsverzeichnis". wenn tz : t hoch zeile. : t zeilenschaltung. rechne Tab-posit + Tab1. ** Leerschritte zwischen ]berschr.und Seite *)n_seite-erh|hen. vergleiche tr mit z-satz _datei-ende. weiter tz bis spalte Tab-posit _n{chste-zeile. +*a  wenn Iv : rechne Einf-seite - 1. : wenn Zch = "N" : rechne Einf-seite - n3. t l|schen wort. bilde tz < Einf-seite._n{chste-zeile. t tief zeile _datei-ende _seite-neu. springe _seite-erh|hen._seite-neu. rechne n2 - 1. wenn n2 = 0 : springe _datei-ende. t tief seite _datei-ende. springe _seite-erh|hen. %$  : bilde tz + Ascii-feld.  : springe _schleife. setze Einf-seite = Ascii-feld. setze direkt Zch1 = Tab-posit. weiter tz bis ende..---------------------------------------------------------------------------- )4G t holen seitenanzahl n2. **Anzahl Seiten nach Umbruch "!H.----------------------------------------------------------------------------.------ Inhaltsverzeichnis erstellen.----------------------------------------------------------------------------_zeile-einf}g.  t zeilenschaltung.!)** Neue Zeile  a zeile lesen tz _seiten-zahl.)** ]berschrift lesen_schleife.