ĝ˙ĝŭ11. LADEN ^Lĝ˙ĝŭ >>1 ----------- Mittels einer Fileselector-Box wird nach dem zu ladenden ASCII-Text oder - wenn der Bin„r-Modus eingestellt wurde bzw. automatisch erkannt wurde - nach der Bin„r-Datei gefragt. ĝ˙11.1.ĝ˙ Zu lange Zeilen >>2 Ist eine Zeile zu lang, wird nach dem Laden "gemeckert" und der Hinweis ausgegeben, daž im Blockpuffer die Zeilennummern stehen von denjenigen Zeilen, die zu lang sind. Mit BLOCK-PASTE k”nnen Sie diesen Puffer an Ihren Text h„ngen und die entsprechenden Zeilen ber JUMP-ZEILE anspringen. Mit REFORMAT lassen sich diese Zeilen dann auf die richtige L„nge bringen. Arbeiten Sie sich dabei aber von hinten nach vorne durch, sonst stimmen die Zeilennummern nicht mehr! Eine lange Zeile wird durch REFORMAT ja in mehrere Zeilen zerlegt. ĝ˙11.2.ĝ˙ Zeilenberprfung >>2 Anhand einer ganzen Liste von Extendern des Dateinamens vermutet UNI_ED. PRG von vorneherein, daž es sich um eine Bin„r-Datei handle und fragt sofort nach, ohne die Datei selber untersucht zu haben. Z.B. alle PRG, TOS, TTP, APP, RSC, O, FNT, CDK-Dateien provozieren diese sofortige Abfrage. Aber auch wenn kein 'verd„chtiger' Extender vorliegt, werden ein paar Bytes der angew„hlten Datei eingeladen und untersucht, ob das Zeichen ASC-0 vorhanden ist, das in normalen Textdateien nicht vorkommt. Programme, RSC- Dateien o.„. haben am Anfang gew”hnlich die ASC-0. UNI_ED.PRG entscheidet so, ob der Bin„r-Modus doch gebraucht wird. Sie k”nnen dann immer noch entscheiden, ob Sie das Laden im Normal-Modus versuchen wollen. Die Ergebnisse sind dann aber nicht vorhersagbar! Ist der Bin„rmodus nicht n”tig, wird nach dem schnellen Einladen jede Zeile untersucht, ob sie am Ende etwa ein oder mehrere Leerzeichen hat. Diese werden entfernt. Ein rasch sich vergr”žernder Balken in der letzten Bildschirmzeile zeigt den Fortschritt der Arbeit an. Die ganze Bildschirmbreite gilt als 100%. Haben Sie vorher einen Text geladen und ver„ndert, wird zuvor gefragt, ob Sie diesen ge„nderten Text abspeichern wollen. Natrlich wird diese Zeilenberprfung unterlassen, wenn Sie den Bin„rmodus eingestellt/best„tigt haben. Die ersten 25 Zeilen werden noch in einer besonderen Weise untersucht. UNI_ED.PRG stellt so fest, ob die Datei eine 1_WORD+-DOC-Datei ist oder - vermutlich - eine Datei aus dem MS-DOS-Bereich (TAB-Zeichen, 'ž' an anderer Position) oder Zeichen verwendet, die UNI_ED.PRG nicht verwendet (TAB- Zeichen z.B.). Sie k”nnen dann die Umsetzung dieser Zeichen in UNI_ED.PRG- Format best„tigen oder unterbinden. Dabei wird auch gleich - falls der St_y_le-Modus nicht aktiv ist - untersucht, ob nicht doch dieser Modus eingestellt werden msste, weil das Steuerzeichen ESC-248 in diesen ersten 25 Zeilen vorkam. Das Umschalten auf diesen Modus k”nnen Sie best„tigen oder ablehnen. Sie k”nnen einen voreingestellten Gliederungs- oder WYSIWYG-Modus mit ^G bzw. ^X abschalten, wodurch die Zeilenberprfung wesentlich schneller vor sich geht. ĝ˙11.3.ĝ˙ 1_WORD+ >>2 Haben Sie ein First-Word-Plus DOC-File angew„hlt, kann auch dieses Format geladen werden, allerdings werden die Stilkommandos wie Fett-Schrift etc. versichtbart, d.h. Sie sehen die Steuerzeichen, die UNI_ED.PRG verwendet. Den 'Header' der 1_WORD+Datei k”nnen Sie bei Bedarf einfach l”schen! Beim Rckspeichern eines Textes als 1_WORD+Datei werden Abs„tze nur als Abs„tze abgespeichert, wenn der darauffolgende Absatz entweder einen Einzug von 3 Leerzeichen hat - wie in dieser Anleitung - oder eine Leerzeile folgt. Beachten Sie diese Regel nicht, formatiert 1_WORD+ munter 2 Abs„tze zu einem zusammen! Die Funktionstasten F1-3 sind in der gebr„uchlichen 1_WORD+Lage mit den UNI_ED.PRG- Steuercodes-Codes fr FETT, UNTERSTRICHEN, KURSIV und ENG vorbelegt. F5 hat das Zeichen '|', das sonst nur ber SHIFT- '~' zu erreichen ist. Mir war das zu umst„ndlich, gerade beim senkrechten 'Linienziehen'. ĝ˙11.4.ĝ˙ Textl„ngen >>2 War Ihr Text so lang, daž der verfgbare Speicherplatz nicht ausreicht in Ihrem Rechner, verweigert UNI_ED.PRG das Textladen. Sie k”nnen dann eine CNF-Datei erstellen, die genau den gleichen Namen wie UNI_ED.PRG hat (UNI_ED.CNF), in der der GEM-Frei-Wert nicht 200 KB, sondern nur 64 KB betr„gt. Beim Start mit einer solchen Datei reserviert sich UNI_ED.PRG dann entsprechend mehr Speicher. Darber geht allerdings gar nichts mehr! Der Start mit einer entsprechend gewandelten CNF-Datei ist auf 1 MByte- Rechnern schon n”tig, um die Anleitung lesen zu k”nnen! ĝ˙11.5.ĝ˙ Aufruf aus einer Shell >>2 Wird UNI_ED.PRG aus einer Shell aufgerufen, liest UNI_ED.PRG die Kommando-Zeile ein und versucht 1. die entsprechende Datei zu lesen und 2. den Cursor an die Stelle zu plazieren, die als weitere Argumente in der Kommandozeile genannt werden in der Art: PROGRAMM.ASC 101 12 UNI_ED.PRG versucht, PROGRAMM.ASC zu laden und den Cursor auf Zeile 101 und Spalte 12 zu setzen. UNI_ED.PRG liest auch den bergebenen Pfad mit ein, sodaž Sie z.B. alle ASCII-Dateien als Anwendung fr UNI_ED.PRG anmelden k”nnen. Gleichgltig, wo die Dateien sich befinden, werden sie von UNI_ED.PRG gelesen. Dies erlaubt unter grafisch orientierten Shells (TT, GEMINI) auch das 'Rberziehen' eines Icons auf das Icon fr UNI_ED.PRG. Auch bei dieser Art zu starten, erkennt UNI_ED.PRG die Dateiart automatisch. Der Dateimodus wird auf 1.Word+, MSDOS oder Bin„r umgeschaltet. ĝ˙11.6.ĝ˙ VOR-Laden einer dazugeh”rigen CNF-Datei >>2 Wie unter 3.4.1. angesprochen, durchsucht UNI_ED.PRG vor dem Einladen einer Datei das Verzeichnis, in dem die zu ladende Datei steht, zuerst auf eine Datei mit demselben Namen, aber dem Extender CNF. Existiert eine solche Datei, versucht UNI_ED.PRG diese zu laden und sich selber entsprechend zu konfigurieren. Bei bestimmten Projekten - wie z.B. diese Anleitung zu schreiben! - fhren Sie immer eine CNF-Datei mit. Egal, mit welcher Konfiguration Sie UNI_ED.PRG gestartet haben, UNI_ED.PRG wird durch diese CNF-Datei so gestaltet, daž es 'passt'. Wenn schon ein Text im Speicher steht und die Zeilenanzahl muž durch die neu einzuladende Datei erh”ht werden, steht eine totale Speicherneuorgani~ sation an. UNI_ED.PRG fragt dann nach. Wenn Sie die Umorganisation ablehnen, wird der neue Text zwar geladen, aber Sie werden h”chstwahrscheinlich die Meldung bekommen, daž der Text wohl zu lang war. ĝ˙11.7.ĝ˙ Laden zu grožer ASCII-Dateien ALT+S >>2 Wenn viele Accessories und Utilities Ihren Rechnerspeicher belasten, k”nnen Sie verschiedene Texte nicht lesen, einfach, weil der Speicher nicht ausreicht. In diesem Fall k”nnen Sie Teile einer Datei einlesen mit S_palteLongText. Die Datei wird nicht mehr in einem Block, sondern Zeile fr Zeile gelesen. Das dauert entsprechend l„nger. UNI_ED.PRG bricht ab, wenn der freie Speicher unter 32 KB angelangt ist. Damit Sie eine grože Datei in kleine Portionen aufteilen k”nnen, mssen Sie die M”glichkeit haben, eine Startzeile, ab der gelesen werden soll, zu bestimmen. So k”nnten Sie diese Anleitung in die Bl”cke mit den Zeilen 1.. 1500, 1501..3000 und 3001..4772 zerlegen. Das Zusammenpuzzeln ist allerdings eine ziemlich Mhe! Schreiben Sie sich die Zeilennummern auf! ĝ˙ĝŭ12. BLOCK-OPERATIONEN: ^Kĝ˙ĝŭ >>1 ------------------------ ĝ˙12.1.ĝ˙ Allgemeines >>2 Grunds„tzlich sind der Spalten- und der Normal-Modus voneinander zu unterscheiden. Im Spalten-Modus werden nur die durch die Block-Anfangsspalte und die Block-Endespalte umschlossenen Textzeichen kopiert, gel”scht, berschrieben oder verschoben. Spalten-Modus heižt: Alle Zeilen eines Blockes beginnen in der Spalte, wo der Cursor beim Markieren des Blockanfangs stand, und nicht etwa in Spalte 1! Dasselbe gilt fr die Endemarkierung. Eine 'Grafik' veranschaulicht dies, wobei die Blockmarken in beiden F„llen identisch sind! Normal-Block Spaltenblock v v ....aaaaaaaaaa ....aaa....... aaaaaa ....aa- aaaaaaaaaa ...aaa.... aaaaaaaaaaaa ....aaa..... aaaaaaa.... ....aaa.... ^ ^ Einen solchen Spaltenblock soll man genauso kopieren, verschieben und l”schen k”nnen wie einen 'normalen' Textblock. Die Ver„nderung der Blockmarken durch Operationen wie Zeile-L”schen u.a. ist so kniffelig, daž diese Marken u.U. falsch versetzt werden. Besonders die Funktion BLOCK-MOVE ist sehr kritisch dann, wenn in den eigenen Block- Bereich hinein kopiert wird. In hohem Maže gilt das gerade fr den Spalten- Modus. Eine Warnung wird deshalb ausgegeben, die empfiehlt, lieber "von Hand" die Funktionen Block-Paste und Block-Delete zu benutzen. Beim Wechseln auf den 2.Textbereich oder beim L”schen des gesamten Textes wird der Spaltenblock-Modus zurckgesetzt. Der Grund liegt darin, daž in einen gel”schten Text oder einen leeren 2.Textbereich immer noch ein BLOCK-PASTE m”glich ist, aber keine Zeilenschaltungen vorgenommen werden. Es wrde dann eine einzige lange Zeile entstehen - die unter ungnstigen Umst„nden, d.h. die Zeile wird l„nger als 32 KB, zum Absturz von UNI_ED. PRG fhren wrde. Daher dieses Rcksetzen! ĝ˙12.2.ĝ˙ Modus Umschalten ^Kn >>2 Der Normal-Modus funktioniert (fast) so wie in jedem anderen Editor bzw. Textverarbeitungsprogramm. Zwischen Normal- und Spalten-Modus wird durch ^Kn hin und her geschaltet bzw. durch Anklicken des 1.Buchstabens in der Block-Mode-Anzeige in der Statuszeile - oder durch Anklicken des Modus-Eintrags im POP_UP-Men. Der Bildschirm wird neu aufgebaut, da ein eventuell vorhandener Block inaktiviert werden muž. Im Spalten-Modus wird nur ein rechteckiger Bereich von den maximal m”glichen Zeilen "behandelt" ohne Rcksicht auf Wortgrenzen oder aktuelle Zeilenl„ngen. Ein solcher Block kann gel”scht, verschoben, gespeichert und auch eingefgt werden. "Von Hand" k”nnen Sie auf diese Weise einen beliebigen Spaltensatz erzeugen - allerdings nur in ASCII! Msste allerdings ein Block durch eine Kopieraktion ber das Textende hinausragen, wird er im Spaltenmodus abgeschnitten. Die Eingabe von ein paar Leerzeilen am Dateiende beseitigt dieses Problem aber schnell! Im Normal- Modus werden automatisch Zeilenschaltungen vorgenommen und die Datei wird verl„ngert. Auch im Gliederungsmodus arbeiten die Spaltenblock-Operationen. Allerdings sind von Operationen nur die 'gltigen' Zeilen betroffen. Damit k”nnen gezielt die šberschriften 'behandelt' werden. Im Gliederungsmodus wird im Normal-Blockmodus mit ^KB auch gleich das Ende mitdefiniert. Die Ende-Zeile ist dann die letzte Zeile VOR der n„chsten gltigen Zeile. Dadurch k”nnen Sie mit EINEM Tastendruck die šberschrift samt des 'eingeklappten' Textes markieren und anschliežend verschieben oder l”schen. Aber Vorsicht! Nach einer solchen Operation stimmt die Anzeige nicht mehr. Sie mssen ein 2.Mal die Gliederungsfunktion aufrufen, damit die verschobenen Zeilen wieder als 'ungltig' markiert werden! Im Normal-Modus werden die markierten Zeilen auch nur mit ihrer tats„chlichen L„nge in den Blockpuffer bernommen. Im Spalten-Modus wird dagegen mit Leerzeichen bis auf die Spaltenl„nge aufgefllt bzw. abgeschnitten. ĝ˙12.3.ĝ˙ Markieren (Anfang:^Kb, Ende:^Kk, Verstecken/Sichtbar-Machen:^Kh) >>2 Sie geschieht mit den Markierbefehlen ^Kb fr den Anfang und ^Kk fr das Ende des Blockes oder durch Aufziehen mit gedrckter linker Maustaste. Das Markieren mit der Maus beschr„nkt sich auf den sichtbaren Bereich, d.h. den angezeigten Bildschirm. Sie k”nnen ber Tastenkombinationen auch eine Zeile, einen Absatz oder ein Wort markieren. Wenn Sie sich auf den sichtbaren Bereich, d.h. den angezeigten Bildschirm beschr„nken k”nnen, ist das Markieren - in beiden Modi! - auch mit F6 und anschliežender Cursorverschiebung m”glich. Diese Art des Markierens ist von dem MS-DOS-Programm WORD her bekannt. Eine einzige Zeile kann durch ^K und Cursortaste nach oben markiert werden. Ein ganzer Abschnitt wird ab der Cursorposition (!) mit ^K und Cursortaste nach unten markiert. Die Block-Markierung kann mit ^Kh hin und her geschaltet werden, das H kann man sich fr H_ide gut merken. Verschiedene Blockoperationen inaktivieren den Block, ebenso Tastatur- Eingaben, schlicht alle Ver„nderungen am laufenden Text. Ohne diese "Rožkur" msste bei jedem eingegebenen Buchstaben kontrolliert werden, ob er den Blockbereich ver„ndert. Das wrde gewaltig auf die Geschwindigkeit drcken! Deshalb wird einfach das zugeh”rige "Flag" zurckgesetzt. Ein Block nimmt - wenn in UNI_ED.CNF nichts anderes steht! - 128 Zeilen auf. Liegen die Blockmarken nicht richtig, wird unten in der letzten Zeile "gemeckert", z.B. darf der Blockanfang nicht hinter dem Blockende liegen. Der markierte Block wird invers dargestellt, d.h. schwarz hinterlegt. Bei aktiviertem St_y_le-Modus stimmen die Markierungen nicht, wenn in einer markierten Zeile Stilwechsel zu verzeichnen sind! Bisweilen gibt es Probleme mit der Blockanzeige auf der letzten Textseite. ĝ˙12.4.ĝ˙ Copy ^Kc >>2 Da die Kopierzeiten von 7 Minuten, dann 25 Sekunden, auf schliežlich knapp 1 Sekunde fr einen 56 KB-Block vermindert werden konnten - schlicht durch die Wahl einer anderen Rechenvorschrift (Hrn.S.Geckeler aus Mnchen sei an dieser Stelle herzlich gedankt fr seinen 'Tip'!) - deshalb sehen Sie keine Anzeige mehr ber den Fortgang der Arbeit. ĝ˙12.5.ĝ˙ L”schen ^Ky >>2 Im markierten Textbereich wird gel”scht. Der Bereich ist verloren. Im Spalten-Modus werden Zeilen der L„nge 0 nicht entfernt. Sie sehen dann noch einen grožen weižen, unbeschriebenen Bereich. Wollen Sie im Spaltenmodus die letzten Buchstaben einer Zeile l”schen, haben Sie keinen Erfolg. "Kopieren" Sie dann einen einspaltigen Block von irgendwoher (!!! UNI_ED.PRG kann auch einen Block auf einer ganz weižen Fl„che markieren. Dieser Block enth„lt dann eben nur Leerzeichen!) mit lauter Leerzeichen an das Ende dieser Zeilen. Dann hat die L”schaktion ber den letzten Buchstaben Erfolg. Beim Abspeichern werden dann die Leerzeichen, die Sie angefgt haben, automatisch entfernt. ĝ˙12.6.ĝ˙ Verschieben ^Kv >>2 Eventuell mssen Sie am alten Ort noch eine Leerzeile l”schen! In schwierigen F„llen wenden Sie bitte eine Kombination von Copy und Del an! Im Spalten-Modus ist Verschieben besonders kritisch! Durch Verschieben auf sich selbst k”nnten in diesem Spalten-Modus gar "rechtwinkelige" Bl”cke nach dem ersten Arbeitsgang entstehen. Die Bercksichtigung solcher Sonderf„lle wrde UNI_ED.PRG unn”tig aufbl„hen! Mit ^RETURN werden Ihnen soviele Leerzeilen eingefgt, wie der aktuelle Block gerade an Zeilen hat. Sie k”nnen ihn dann verschieben im Spaltenmodus, ohne Wirrwar zu erzeugen. Wollen Sie ein Spaltenblock nach rechts verschieben, um z.B. eine gr”žere Einrckung zu produzieren, empfehle ich Ihnen, einen passenden Block von Leerzeichen irgendwo !!! auf einer weižen Fl„che zu markieren und diesen VOR den entsprechenden Block mit BLOCK-PASTE zu setzen. Das ist sicherer, als den Textblock zu verschieben! Noch einfacher geht es mit der Zusatzfunktion ab Version 5/20, die ber ^K und die Cursortasten links und rechts ausgel”st wird. Dazu muž der Abschnitt markiert worden sein. Sie werden nach der Zahl der Buchstaben gefragt, um die ein ganzer Abschnitt nach links oder rechts verschoben werden soll. ^K -> nn RETURN ist eine recht schnelle Sequenz. ĝ˙12.7.ĝ˙ Read/Merge/Patchen ^Kr >>2 Sie k”nnen einen Text einlesen und ihn an der aktuellen Cursor-Position einfgen. Der Text wird in den Blockpuffer gelesen und ber ein nachgeschal~ tetes Copy eingefgt. War die Datei l„nger als die momentan m”glichen Blockgrenzen, wird mit einer blinkenden Warnbox darauf hingewiesen. Wenn Sie den Bin„r-Modus in UNI_ED.PRG aktiviert haben, arbeitet das Block-Lesen ein wenig anders. Die ausgew„hlte Datei wird als ein zusammenh„ngender Block gelesen. Seine L„nge ist auf 32764 Bytes beschr„nkt. Dieser Block wird genau an der Cursor- Position beginnend im OverWrite-Modus ber die bereits eingelesene Datei 'gelegt'. Damit k”nnen Sie gezielt Bin„r-Dateien 'Patchen'. Vorbedingung ist allerdings, daž der rechte 'Rand' der Datei noch stimmt. Sie drfen keine Zeichen vorher ber diesen 'Rand' geschrieben haben - natrlich k”nnen Sie vorher schon nach 'Herzenslust' gepatcht haben! Wenn Sie etwa UNI_ED.PRG patchen wollen, laden Sie UNI_ED.PRG ĝŭinĝŭ UNI_ED. PRG hinein. Das geht nur, wenn der m”gliche 'Text'-Bereich grož genug ist. Auf einem ST sollten Sie von 4096 Zeilen ausgehen! Nun suchen Sie nach der 'Kennung' ĝ˙INLINE FONTS und VAR fuer UNI_ED Vers....ĝ˙ im 'Text' des Programmes. Ziemlich gegen Ende des Programmes werden Sie das finden! Stellen Sie nun den Cursor ĝŭgenauĝŭ auf das 1.'I' von INLINE. Dann laden Sie xT_PATCH.INL an diese Stelle. Die gepatchte Datei k”nnen Sie nun zurckspeichern unter einem gewnschten Namen. Die Daten, die in xT_PATCH. INL stehen, werden beim n„chsten Start der Programmdatei automatisch verwendet! Natrlich k”nnen Sie dieses Patchen auch mit jeder anderen Datei vollziehen! Die Fonts fr die fremdsprachlichen Buchstaben sind in den einzelnen Grafik-Druck-Modulen gespeichert. Die Fonts k”nnen Sie nur ber die hier beschriebene Methode auswechseln. Die Module k”nnen Sie zwar als Programm starten, aber sie erwarten ein definierte Schnittstelle zu UNI_ED.PRG. Beim Start vom Desktop aus erhalten Sie nur eine ALERT-Box und das Modul terminiert. Eine Patchm”glichkeit h„tte in die Module eingebaut werden k”nnen, h„tte aber deren L„nge unn”tig aufgebl„ht! Eine grože Hilfe ist im Bin„rmodus die ver„nderte Arbeitsweise der Distanz-Anzeige, die den Offset von einer markierten Position in HEX anzeigt. ĝ˙12.8.ĝ˙ Write ^Kw >>2 Der Blockpuffer wird als ASCII-Datei auf Diskette geschrieben. Das geht auch dann, wenn der Block eigentlich als ungltig markiert wurde, sich aber doch etwas im Puffer befindet, z.B. nach dem Reformatieren eines Blockes. Der reformatierte Text steht dann im laufenden Text UND im Blockpuffer. ĝ˙12.9.ĝ˙ Wort Rechts Markieren ^Kt >>2 Entsprechend dem unter 3.1. Gesagten wird das "Wort" unter dem Cursor nach RECHTS markiert. ĝ˙12.10.ĝ˙ Ganze Zeile markieren ^K UP >>2 ĝ˙12.11.ĝ˙ Absatz markieren ^K DOWN >>2 Ausgehend von der aktuellen Cursorposition, nicht etwa vom Absatzanfang aus!, wird die n„chste Leerzeile oder eine Einzug von 3 Leerzeichen gesucht. UNI_ED.PRG nimmt an, daž die Zeile davor die letzte Zeile eines Absatzes ist und markiert den Block entsprechend. ĝ˙12.12.ĝ˙ Blockpuffer An_Z_eigen ^Kz >>2 šber den aktuellen Inhalt des Blockpuffers, der mindestens 128 Zeilen grož ist, k”nnen Sie sich hier informieren. Auch wenn der Block als ungltig erkl„rt wurde, geht das! Drcken Sie anschliessend eine Taste, sind Sie wieder im normalen Arbeitsmodus. ĝ˙12.13.ĝ˙ Blockpuffer Paste ^Kp >>2 Insofern irgendetwas im Blockpuffer steht (s.Block-Zeigen!), k”nnen Sie diesen Inhalt "hineinschmieren". Das Hin- und Herkopieren zwischen den beiden Textbereichen 1 und 2 ist so gut m”glich! Allerdings wird beim Wechseln zwischen den beiden Textbereichen vom Spaltenblockmodus auf den Normalmodus umgeschaltet! ĝ˙12.14.ĝ˙ Spaltenblock E_valuate ^Ke >>2 Der Spaltenblock-Modus sollte normalerweise eingeschaltet sein. Mit den Blockkommandos definieren Sie dann den Bereich, der neu berechnet werden soll. Dieser Bereich kann mehrere Rechenspalten beinhalten! Damit UNI_ED.PRG die verschiedenen Rechenspalten und deren Rechenvorschriften auseinanderhalten kann, muž UNI_ED.PRG das 'Rechenlineal' gefunden haben. Es ist eine Zeile, die mit dem doppelten '&' beginnt - wie alle anderen internen Optionsmerker auch. Dieses Lineal sollte nach M”glichkeit HINTER dem 'Rechentext' stehen. Nach dem anf„nglichen '&_&' muž gleich die Startmarke fr einen ersten Spaltenblock kommen, ein 'v'. Jeder Beginn einer Rechenspalte wird durch dieses 'v' markiert. Hinter jenem 'v' folgt entweder sofort eine Zahl, die die Nummer des Rechenblockes angibt, oder der Buchstabe 't' oder 'T'. Daran erkennt UNI_ED.PRG, daž in diesem Spaltenblock Text steht, der NICHT berechnet werden soll. Bis zu 16 dieser 'v's sind m”glich, d.h. genau 16 Rechenspalten. Dazwischen k”nnen sich beliebig viele Textspalten befinden. Die Spalten, in denen eine Rechenvorschrift beginnt, werden mit dem '@' gekennzeichnet. Es mssen so viele Rechenvorschriftsspalten existieren, wie es Rechenspalten gibt - wenn Sie alle berechnen wollen. Ein Beispiel macht das Gesagte leichter verst„ndlich: 1 2 1 100 -25.333 2 1200.1 22 [2|2] 3 23 134.2 4 -5.3 [4] ------------- ----------- 6 mittl[1..4] 5-MITTL[1|2..4]+[2|1]-summe[1|1..4] 7 [6|1]-[6|2] [2] &_v01 vText v02 @01 @02 @ Dieses Lineal, das NUR FšR DIESE ANLEITUNG EIN '&_' BESITZT, offenbart, daž der Text in 6 Spaltenbl”cke unterteilt werden kann. Die Bl”cke 2 und 4 enthalten Zahlenkolonnen. Die auf diese untereinander stehenden Zahlenreihen anzuwendenden Rechenvorschriften befinden sich in den letzten zwei Feldern, mit @ mit der zugeh”rigen Nummer gekennzeichnet. 1 Spalte, die nur Text enth„lt und deshalb bersprungen werden muž, befindet sich in der Datei, gekennzeichnet mit 'vText'. Beim Einlesen, Speichern oder Stilbestimmung erkennt UNI_ED.PRG eine solche Zeile. Wurde das Rechnen aktiviert ber die O_ptionen oder durch die Datei UNI_ED.CNF, werden entsprechende Linien durch Ihren Text gezogen, damit Sie genau die Begrenzungen der einzelnen Felder erkennen k”nnen. Aužerdem wird automatisch der Spaltenblock-Modus und der OVERwrite-Modus gew„hlt. Bei Tabellen empfiehlt sich die Žnderung durch einfaches šberschreiben von Zahlen und Werten. Am Ende des Rechenlineals erwartet UNI_ED.PRG die Angabe des Bereiches, der berechnet werden soll in der Form '@a|b|c|d', wobei a die Rechenspalte bezeichnet, AB der die Rechnung beginnen soll. b gibt an, wieviele Rechenspalten ausgewertet werden sollen. c markiert die absolute Startzeile und d die Anzahl der Zeilen ab dieser Startzeile. Durch diese 4 Angaben haben Sie gleich nach Einladen des 'Textes' eine richtig eingestellte Tabelle und Sie k”nnen mit ^Ke gleich die 1.Berechnung durchfhren lassen. Die Rechenvorschriften drfen alle 4 Grundrechenarten, beliebige viele, ordentlich geschlossene Klammernpaare in beliebiger Verschachtelungstiefe und Adressreferenzen enthalten. Die Anzahl von 32 einzelnen Summanden, Faktoren, Divisoren darf in keiner Zeile berschritten werden! Adressreferenzen beziehen sich auf die jeweilige Blockzeile, nicht etwa auf die unten in der Statuszeile angezeigte Zeile! Mit der Distanzzeilenanzeige, die sich auf die Blockanfangszeile bezieht, l„žt sich die Zeilenreferenz leicht feststellen. Beginnt Ihr zu berechnender Spaltenblock etwa in Zeile 13, merken Sie sich die Zeile 13 mit S^M, nachdem Sie die Distanzzeilenanzeige aktiviert haben. Eine Adressreferenz von 2 bezieht sich dann auf die Zeile 14, wenn Ihr zu berechnender Spaltenblock mit Zeile 13 als Beginn markiert wurde! Die Adressreferenzen werden durch ECKIGE Klammernpaare dargestellt: '[n]' Die Zahl n ist dabei ein nummerischer Ausdruck, der nicht kleiner als 1 und nicht gr”žer als die maximalen Blockzeilen sein darf! n wird berechnet und darf deshalb aus einem Ausdruck mit allen 4 Grundrechenarten mit beliebig vielen Klammerebenen bestehen. Aber auch hier sind wieder nur 32 Summanden, Faktoren etc erlaubt. Da Adressreferenzen zuerst berechnet werden, darf jede EINZELNE Referenz bis zu 32 Faktoren beinhalten, unabh„ngig davon, ob andere Referenzen ebenfalls so lang sind. Es sind also Ausdrcke erlaubt wie '[12- 3*(4-1)+15]' - wenn nicht die schnelle Berechnungsart aktiviert wurde! Befindet sich nur 1 nummerischer Ausdruck in den eckigen Klammern, nimmt UNI_ED.PRG an, es handele sich um die Zelle der Rechenspalte, die im Lineal mit einer Ziffer gekennzeichnet ist. So wird im obigen Beispiel die '[4]' automatisch als '[4|1]' interpretiert. Die genaue Bezeichnung '[2|2]' ist eigentlich berflssig, da diese Adressreferenz sowieso im Rechenvorschriftenblock fr die 2.Rechenspalte steht. Wichtig ist aber die Formel '[6|1]-[6|2]', die im Block fr die 1.Rechenspalte steht. Eigentlich wrde reichen: '[6]-[6|2]', da der 1er selbstverst„ndlich ist. Soll aber in einer bestimmten Spalte auf eine ANDERE Spalte zugegriffen werden, MUSS diese in der Adressreferenz durch '|n' angegeben werden! Diese Adressierungsart ist auch in den Bezeichnern 'Summe[' und 'Mittl[' erlaubt. Im obigen Beispiel steht in den Vorschriften fr den 2.Spaltenblock die Anweisung, eine Summenbildung aus dem 1.Spaltenblock abzuziehen. Ein Nummernkreuz # steht fr die aktuelle Zelle, bzw. Zellenzeile. Auf diese Weise k”nnen Sie relative Adressierungen vornehmen, die nicht ge„ndert werden mssen, wenn Sie eine Zeile einfgen. 'summe[#-5..#-1]' berechnet immer die Summe der 4 voranstehenden Zellen, gleichgltig, WO sich diese Rechenvorschrift befindet. Diese relative Adressierung hat allerdings einen Nachteil: Die schnelle Berechnung, die unter O_ptionen R_echnen eingestellt werden kann, ist damit NICHT m”glich, wenn # in einem Rechenausdruck ver~ wendet wird, als alleinige Adressangabe kann es auch bei schneller Berechn~ ung Anwendung finden. Eine Rechenvorschrift fr eine Blockzeile k”nnte z.B.lauten:'[2]+[3]*[2]' Wenn Sie in der 4 Zeile stehen wrde, hieže das: Nehme den Inhalt der Zeile 2 des markierten Spaltenblockes und addiere dazu das Produkt dieser Zeile mit dem Inhalt der 3. Zeile. Der vorhergehende Inhalt der Zeile 4 des markierten Spaltenblockes wird berschrieben. Adressreferenzen drfen NICHT verschachtelt werden, Ausdrcke der Art '[[12]-3]' sind NICHT erlaubt! Die Beschr„nkung auf 32 Faktoren ist nicht weiter tragisch, da die Rechenvorschrift 'SUMME[aa..bb]' erlaubt ist, die die Summe aller Werte von Blockzeile aa bis Blockzeile bb berechnet. Die Anweisung 'Summe' darf in jeder Zeile mehrfach vorkommen! Das gilt auch fr die Anweisung 'mittl'. In beiden F„llen ist Grož-/Kleinschreibung nicht von Bedeutung! Befindet sich in einem Block mit Rechenvorschriften eine 'leere' Zeile, so wird in dieser Zeile KEINE Berechnung durchgefhrt, freilich kann auf den Zahlenwert in dieser Zeile durch Rechenvorschriften in einer anderen Zeile zurckgegriffen werden! Die Marken fr den Rechenvorschriften-Block werden erst wieder versetzt, wenn Sie Speichern oder Stilbestimmung aufrufen und dadurch das 'Rechenlineal', das Sie zwischenzeitlich ge„ndert haben k”nnten, neu bestimmt wird. Da UNI_ED.PRG bei jedem Aufruf von 'Spaltenblock Berechnen' die Rechenvorschriften neu einliest, k”nnen Sie beliebig oft andere Rechenformeln eintragen. Hinter der Rechenformel drfen noch Kommentare, Texte usw. stehen, da UNI_ED.PRG das Leerzeichen ' ' als Ende der Rechenformel interpretiert. Das hat u.a. zur Folge, daž eine Zeile in den Rechenvorschriften, die mit einem ' ' beginnt, berlesen wird. Auf diese Weise k”nnen Sie sehr schnell eine Formel 'ausblenden'. 'Summe[aa..bb] ' wird ausgewertet, ' Summe[aa..bb]' aber nicht. Ein markierter Spaltenblock wird nach den vorliegenden Rechenvorschriften berechnet und die neuen Zahlenwerte werden in diesen Spaltenblock RECHTSBšNDIG eingetragen bis auf eine Leerstelle. Fr die Bereitstellung der erforderlichen Stellenanzahl sind Sie selber verantwortlich. Nach dem 1.Rechenvorgang wird der Spaltenblock inaktiviert - da ja Zahlen geschrieben wurden. Da aber die Blockmarken - im Regelfall! - identisch geblieben sind, geht UNI_ED.PRG bei allen weiteren Aufrufen mit ^Ke davon aus, daž der Spaltenblock identisch geblieben ist, bzw. daž GšLTIGE Spaltenblockmarken vorliegen. Sie k”nnen also Zahlen in dem Spaltenblock „ndern und dann sofort wieder ^Ke aufrufen. Sie mssen nicht erst wieder den Block markieren. Dadurch sind schnelle Zyklen nach der Methode 'Versuch und Irrtum' m”glich! Fr die Rechenfunktion wird Speicherplatz gebraucht, jeweils 128 Byte fr eine Blockzeile - wenn der Defaultwert von 16 Rechenfeldern eingehalten wird. Bis zu 32 Rechenfelder sind maximal m”glich. UNI_ED.PRG passt sich dabei automatisch an. Dann wird aber auch der doppelte Speicher gebraucht! 8 Blockzeilen brauchen schon 1 KByte bzw. 2 KB. In der Standardkonfiguration mit 128 Blockzeilen sind das schon 16 KB! Freilich werden Sie wohl kaum jemals so lange Tabellen mit UNI_ED.PRG berechnen wollen. UNI_ED.PRG muž schon geh”rig viel arbeiten bei dieser Operation. Ungef„hr 100 Zellen kann UNI_ED.PRG pro Sekunde berechnen bei der schnellen Rechenart. Eine bliche Tabellenkalkulation ist bei weitem schneller! (Aber nicht beim Scrollen!) ĝ˙12.15.ĝ˙ Block Auf-/Zuklappen ^Kg >>2 Im Abschnitt 17.17.10.2 finden Sie eine Funktionsbeschreibung