Online und Offline

1.  `Hintergründe` 
2.  `Bunte Daten` : Grüne, gelbe, rote, blaue Sätze
3.  `So läuft eine Sitzung ab` 

1. Hintergründe
Wäre es nicht prima und alles ganz einfach, wenn man die Datenbank auf dem Bildschirm unmittelbar sehen könnte, am besten wie eine Tabelle, und wenn jede Änderung ganz direkt passieren würde? Wie auf einem Blatt Papier oder auf Karteikarten - oder wie bei einem Text- oder Tabellenprogramm. So ist es aber nicht und so kann es technisch gar nicht sein, schon allein wegen der Mehrplatzproblematik. Das schafft ein Potential für Verwirrung. Hiermit wollen wir ein wenig Aufklärungsarbeit leisten. (Bei Textprogrammen, nebenbei bemerkt, sieht man auch nicht unmittelbar den gespeicherten Text, man ist aber viel "dichter dran".) 
Eins vorweg : Nicht jeder braucht alles zu kennen und kann alles nutzen, und nicht jeder will alles wissen, das ist auch den Entwicklern klar. Also zuerst die Frage: 

Was sollte denn jeder wissen? (Damit man keine groben Denkfehler macht) 
Die Datenbank besteht aus Datensätzen und jeder Satz aus Datenfeldern oder "Kategorien". Das Konzept der Tabelle (wie bei relationalen Datenbanken) ist zu unpraktisch, weil es zu viele Felder gibt (die Tabelle würde viel zu breit) und weil es viele Felder gibt, die mehrfach belegt werden können (das geht in einer Tabelle nicht gut). 
Jeder Datensatz entspricht, klassisch-bibliothekarisch gesehen, einer "Titelaufnahme". 
Um allen Komplikationen aus dem Wege zu gehen, kann man sich darauf beschränken, immer nur an einem Datensatz zu arbeiten und konsequent diesen erst fertig zu machen und abzuspeichern, bevor man irgendwelche anderen Aktionen macht, außer kurz mal irgend etwas im Index nachsehen - das kann nie schaden. Also immer schön "eins nach dem andern". Das ist dasselbe Verhalten wie beim DOS-Programm, welches gar nichts anderes erlaubt. 
Als Hilfe gibt es die Hintergrundfarbe! Wer es ganz einfach haben will, merkt sich nur: 

Wenn Hintergrund gelb, dann: 
erst [Speichern], bevor man sich den nächsten Satz vornimmt, 
oder [Wechseln],  um die Änderungen ungültig zu machen 
bzw. [Deaktivieren] (bei NEUen Sätzen), wenn man diesen Satz so nicht speichern will.

Das genügt! Wie gesagt, so kann man es machen, und wer weiter nichts will, braucht nicht weiterzulesen. (Man nutzt ja ohnehin bei jeder Software nur einen kleinen Teil der Möglichkeiten, das ist ganz normal.) 

Aber wenn man etwas mehr Farbe ins Leben bringen will:
[Hinweis: Nicht jeder Systemverwalter will die hier beschriebenen Möglichkeiten zulassen. Er kann sie allesamt mit dem FLEX-Befehl  set k1 abschalten. Dann geht nur "eins nach dem andern".]
Dieses Programm soll ein flexibleres Arbeiten zulassen als die alten `DOS-Programme`. Nicht mehr immer "eins nach dem andern", sondern auch mal was zwischendurch und nebenbei! Außerdem soll es auch bei Bedarf mit Daten umgehen können, die nicht zur Datenbank gehören. Es will den Nutzer deshalb dabei unterstützen, die Übersicht zu bewahren. Und das tut es mit Farben: 

2. Bunte Daten : Grüne, gelbe, rote, blaue Sätze
Schauen wir doch mal, wie es sich mit den möglichen Zuständen eines Datensatzes genau verhält. 
Es ist nicht schwer: an der Hintergrundfarbe kann man erkennen, was mit dem gerade sichtbaren Satz los ist. Wir nennen die Farben grün, gelb, rot und blau, obwohl es sich um sehr helle Farbtöne handelt. 
Statt auf  die Farben kann man auch auf die Status-Angaben achten, die man unterhalb des Schreibfeldes sieht. Aber die Farben sind ja auch ohne genaues Hinsehen unmittelbar einsichtig: 

grün: 	Man erblickt gerade den Satz genau so, wie er in der Datenbank gespeichert ist. "Im grünen Bereich", wie man so sagt, auf Nummer Sicher. Macht man aber die geringste Änderung, dann wird der Hintergrund gelb:  
	(Status: ONL = Online = sichtbar für alle) 

gelb: 	Das bedeutet: Aufpassen! Man erblickt einen veränderten Datensatz, der aber noch nicht abgespeichert wurde - in der Datenbank steht noch der grüne (den man vor der ersten Änderung sah). Von den Änderungen steht noch nichts in den Registern! 
	Am Sitzungsende wird der gelbe gespeichert. Aber mit dem Button [Wechseln] kann man das verhindern: dann ist der grüne wieder da und nichts passiert (der gelbe ist nicht weg, aber ungültig. Nochmal [Wechseln] gedrückt, und er kommt zurück.). 
	Mit dem Button [Speichern] kann man schon vor dem Sitzungsende den gelben speichern lassen. Natürlich wird er dann grün. Der vorher grüne, den gibt's auch jetzt immer noch! Nur ist der jetzt gelb. Mit [Wechseln] kann man erneut zwischen beiden umschalten. 
	(Status: EDT = Edited = Bearbeitet = Noch nicht für alle sichtbar)

rot:	Dieser Satz wurde gelöscht (Merkvers: "rot ist tot"). In den Registern ist er nicht mehr zu finden. Während der Sitzung kann man ihn mit dem Button [Aktivieren] wieder in die Datenbank speichern lassen, also vor dem endgültigen Aus retten. Dann wird  er wieder grün.  
	(Status: DEL = Deleted = Gelöscht) 

blau: 	Davon gibt es zwei verschiedene Sorten: neue und externe Sätze. Die zweite Sorte sieht der Normalanwender nie! 
	(Status: NEU bzw. EXT; Merkvers: "blue is new"). Nichts davon steht in den Registern! Bei der ersten Änderung wird so ein Satz sofort gelb, der Status ist aber immer noch "NEU" bzw. "EXT", daran sieht man: dieser Satz gehört noch immer nicht zur Datenbank, besonders ist er noch nicht im Index zu finden. 
	"NEU" bedeutet: er wird am Sitzungsende in die Datenbank gespeichert, "EXT" heißt: er wird in die Externe Datei zurückgespeichert. Das Speichern kann man verhindern mit dem Button [Satz lösch.] oder [Deaktivieren]. Dann wird er rot. Die externe Datei ist dann am Ende also kleiner. 
	
Blaue Sätze mit Status NEU kommen durch Eingeben oder Einlesen während der Sitzung zustande. Sie werden immer am Ende der Offline-Liste angehängt. Mit dem Button [Daten in Bearb.] oder Alt+q sieht man diese Liste. Aber auch die gelben (geänderten) Online-Sätze sammeln sich dort an! Mit [Voriger] / [Nächster] kann man darin blättern, unabhängig von der Ergebnismenge. 
Und EXT? Nur wenn eine Offline-Datei in der INI-Datei angegeben ist (normalerweise also nicht), oder wenn man eine im Start-Aufruf angegeben hat (siehe unten) hat man überhaupt (gleich nach dem Start) eine Anzahl blauer Sätze mit dem Status "EXT". Mit [Daten in Bearb.] kann man sie sofort sehen. 

Gelbe Sätze (EDT), können im Status ONL, NEU oder EXT sein - völlig klar.  
Zu merken braucht man sich trotzdem nur: 

	Gelb  bedeutet  "Achtung! So wird der Satz am Ende gespeichert". 

Keine Sorge, auch wenn Sie extrem fleißig sind und enorm viele Sätze während einer Sitzung eingeben und bearbeiten: das Programm verliert nicht die Übersicht, welche davon noch gespeichert werden müssen! Das kann man ihm völlig überlassen, aber man kann es auch jederzeit abfragen; es gibt dafür das Menü "Extras". 
Wichtig sind dort nur diese zwei Punkte (die anderen sind ein netter Zusatzservice): 

IN ARBEIT befindl. Sätze
Das sind gelbe Sätze mit dem Status ONL
Diese Menge kann mit dem Befehl  find edt auch in einem FLEX ermittelt werden 

Neu, noch nicht gespeichert
Alle Sätze mit dem Status NEU, gelbe und blaue. (Die roten - ungültig gemachte neue - fallen dabei unter den Tisch.) 
Diese Menge kann mit dem Befehl  find neu  ebenfalls per FLEX ermittelt werden. 

Man bekommt die betr. Sätze als Ergebnismengen und kann sie sich anschauen. Über das Menü 
	Datei | Ergebnismenge -> Datenbank 
kann man jeweils die Speicherung aller dieser Sätze veranlassen. 
(Nebenbei:  find edit  und  find new  gehen auch. Die Statusbezeichnungen, ONL, EDT usw., stehen in der Datei UIFEGER, Zeilen 390-395, und dürfen geändert werden.) 

Am Sitzungsende prüft das Programm, ob diese Mengen noch etwas enthalten. Wenn ja, kommt die Frage 
"Sollen die neuen und bearbeiteten (noch nicht gespeicherten) Sätze gespeichert werden?" 
An dieser Stelle stutzen Uneingeweihte regelmäßig, denkend, sie hätten doch alles schon gespeichert.  Aber das Gedächtnis des Programms ist in diesem Punkt denn doch besser... 
Zur Vorsicht sollte man dann folgendes tun: Button [Abbrechen] drücken und sich diese Mengen nochmals zeigen lassen, da wird man's dann ja sehen. Vielleicht ist es nur ein einzelner Satz, wo man versehentlich nicht [Speichern] gedrückt hat, vielleicht ist es ein NEU-Satz, den man eigentlich wieder ungültig machen wollte - beides läßt sich sofort aus der Welt schaffen. 
Per FLEX kann man das Ende noch sanfter gestalten, indem man etwa in den _ENDFLX.FLX schreibt: 

  Schauen, ob es noch ungespeicherte neue gibt: 
find new 
if no jump edit 
var "Es gibt noch ungespeicherte neue Sätze! Speichern?" n "Nein = Liste zeigen" 
ansi 
yesno 
if yes jump newsave 
sho list 
end 
:newsave 
first 
:loop1 
put 
next 
if yes jump loop1 

:edit 
  Schauen, ob es noch ungespeicherte bearbeitete gibt: 
find edt 
...    usw. 

Der vollständige FLEX ist im Paket enthalten. 

Wer diese Erklärungen zu oberflächlich findet, kann noch weiterlesen: 

Drei Situationen sind zu unterscheiden, die nachfolgend beschrieben werden. Dabei sind jeweils alle Aspekte und möglichen Fälle der Bearbeitung zu durchdenken.
Schauen wir uns aber zuerst an, wie eine Sitzung schematisch abläuft. 

	Kann man den Offline-Speicher auch durchsuchen? Ja. 
	Mehr dazu: F1 geben mit Schreibmarke in der Befehlszeile. Oder `hier` klicken.

3. So läuft eine Sitzung ab
Normalerweise hat man in der INI-Datei keinen Befehl  "Offline=dateiname". Dann entfällt alles, was zur "Externen Datei" gesagt wird. 

1. Start des Programms
 1. Einlesen der INI-Datei 
 2. Öffnen der Datenbank 
(3. Einlesen der Externen Datei) 
(4. Einlesen der von der letzten Sitzung übriggebliebenen Daten und/oder Ergebnismengen) 
 
2. Arbeit an der Datenbank
1.  Bearbeiten von Datensätzen
2.  Eingeben neuer Sätze (Per Tastatur oder durch Einlesen externer Daten)
3.  Löschen von Datensätzen 
(4. Bearbeiten und Löschen von Sätzen in der Externen Datei)
	
3. Ende der Sitzung
Wenn im Menü "Option" die Zeile "Ergeb. aufbewahren" markiert ist: Schritt 0., sonst kommen die Fragen a) und b):
a) "Sitzung später fortsetzen" (Ja: alle Ergebnismengen und bearbeiteten Sätze bleiben erhalten) 
b) "Sollen die neuen und bearbeiteten Daten gespeichert werden?" 
(Ja: die bearbeiteten Sätze werden noch gespeichert; 
Nein: sie werden wenigstens aufbewahrt, wenn a) mit "Ja" beantwortet wurde) 
(0. Sichern des Zustands der gesamten Sitzung - dann entfallen 1.-3.) 
1. Speichern aller noch nicht gespeicherten bearbeiteten und neuen Sätze (2.1 und 2.3) 
2. Schließen der Datenbank 
(3. Schreiben einer neuen Fassung der Externen Datei; die alte bleibt unter name.BAK erhalten) 

Hat man eine Externe Datei bearbeitet, kann man sie anschließend beliebig weiter verwenden. Sie gehört nach wie vor nicht zur Datenbank. Es sei denn, man hat sie abspeichern lassen! (Über das Menü "Datei | Offline-Datei -> Datenbank".) Dann ist sie anschließend nicht mehr extern, sondern intern, verschluckt von der Datenbank. 

Hinweise
1. Die laufende Nummer des aktuellen Satzes in der Offline-Datei erhält man mit  var oq  (Nummer steht dann in der iV)
2. Um den Satz mit der laufenden Nummer  num  aus der Offline-Datei zu laden:  get q num
3. Um sich die lfd.Nr. des aktuellen Satzes in der Offline-Datei zu merken:  var oq\ins $nu
4. Um den in $nu gemerkten Satz später wieder zu laden:  var $nu\get q

Noch etwas mehr zu den Hintergründen

EDT-Sätze 
	Man ändert etwas an einem Satz der Datenbank. Was passiert dann wirklich? 
	Der Satz, den man auf dem Schirm vor sich hat und bearbeitet, ist ein Objekt, das in dem Moment nicht zur Datenbank gehört! Es ist eine Kopie, nicht das Original. Eine Änderung an einem  Namen z.B. führt nicht schon im Moment der Änderung dazu, diesen Name wie von Geisterhand auch im Index und in der Kurzanzeige zu ändern - das passiert automatisch erst dann, wenn der Datensatz tatsächlich abgespeichert wird. Erst dann sehen auch andere Datenbankbenutzer die Änderungen. 
	Jederzeit während der Bearbeitung eines Satzes kann man aber den Wunsch verspüren, sich nebenbei andere Sätze anzuschauen. Der "aktuelle Satz" sollte dann quasi beiseite gelegt werden, es darf nicht notwendig sein (wie beim DOS-Programm), zuerst speichern zu müssen, bevor man etwas anderes tun kann! Deshalb braucht das System die Fähigkeit, sich beliebig viele Sätze zwischenzeitlich "beiseite zu legen", und zwar in dem Zustand, der bei der Bearbeitung entstanden ist. Das System kann das nur, wenn es sich merkt, zu welchem Satz in der Datenbank jeder einzelne dieser Sätze gehört, denn der Satz in der Datenbank ist letztendlich dann zu ersetzen durch den bearbeiteten Satz. Wo liegen sie wirklich, diese "beiseite gelegten" Sätze? In einer Hilfsdatei, die wir "Offline-Speicher" nennen. Für den Bearbeiter selbst, dem diese ungespeicherten Daten "gehören", sind sie genauso leicht erreichbar wie die Online-Sätze, nur nicht über den Index. 
	[Speichern] : Der bisherige (grüne) Datensatz wandert aus der Datenbank in die Offline-Datei, die Indexeinträge ändern sich so, wie es sich aus dem korrigierten Satz ergibt. Mit dem Button [Wechseln] kann man den Zustand jederzeit wieder umdrehen, d.h. den alten Zustand zum Bearbeitungszustand machen und dann mit [Speichern] tatsächlich wieder die Situation genau umzukehren. Das ist eine viel höhere Sicherheit gegen versehentliche Speicherung als man es beim DOS-Programm hat. 
	Wenn der Hintergrund gelb ist und in der Statusanzeige "EDT" steht, dann sieht man die Fassung, die am Ende gespeichert wird! Mit [Wechseln] kann man das sofort ändern, dann wird der Hintergrund grün. 
	In jedem Fall steht "ONL" in der Statusanzeige, weil ja eine Fassung des Satzes schon in der Datenbank steht.
	[Löschen] : Der Hintergrund wird rot, der Satz wird aus der Datenbank heraus in den Offline-Speicher kopiert, in der Datenbank als gelöscht markiert und aus den Registern gestrichen. In der Status-Anzeige erscheint "DEL". Der Button [Löschen] ändert seine Aufschrift: jetzt steht drauf 
	[Aktivieren] : Damit kann der Satz aus dem Offline-Speicher heraus sofort wieder gespeichert werden, als wäre es ein neuer Satz. 

NEU-Sätze
	Ab wann gehört ein neuer Satz zur Datenbank?
	Neusätze sind Datensätze, die man gerade erst neu eingegeben oder aus anderen Quellen bezogen hat (Menü "Datei | Externe Ergebnismenge" ;  FLEX read file ...; Kopieren aus anderer Datenbank). Diese Sätze werden nicht schon während des Eingebens zum Bestandteil der Datenbank, sondern erst dann, wenn man auf den [Speichern]-Button gedrückt oder per FLEX den Befehl "put" gegeben hat. Vorher kann man immer noch über den Button [Deaktivieren] den neuen Satz ungültig machen. 
	Auch bei der Erfassungsarbeit soll man die Freiheit haben, einen Satz zunächst, vor dem Speichern, unvollendet beiseite zu legen und andere zu betrachten, einzugeben oder  zu bearbeiten. Daher braucht man hier dasselbe Konzept wie im Fall A: Das System braucht einen Speicher, wo Sätze gelagert werden, die noch nicht in die Datenbank gespeichert wurden. Der Speicher hierfür ist gleichfalls der "Offline-Speicher". Diese Bezeichnung gilt vor allem aus der Sicht anderer Bearbeiter, die nicht in diesen Speicher hineinschauen können! Diese neuen Sätze können sie überhaupt nicht sehen; die Edit-Sätze können sie sehen, aber nur die alte, unveränderte Fassung!  
	In der Status-Anzeige steht "NEU", solange der Satz noch nicht in die Datenbank gespeichert wurde. 
	[Speichern] : Aus dem Satz wird ein Mitglied der Datenbank, er wird in den Index aufgenommen und ist nicht mehr Teil des Offline-Speichers. Wird nun wiederum an diesem, nun gespeicherten Satz etwas geändert, hat man Situation A. Es steht dann auch "ONL" in der Statusanzeige. 
	[Deaktivieren] : Der Hintergrund wird rot, der Satz wird mit "DEL" markiert, aber nicht sofort beseitigt, sondern erst am Ende der Sitzung. So kann man es sich während der Sitzung immer noch anders überlegen, denn der Button ändert seine Aufschrift zu [Aktivieren], womit man den Satz wieder gültig machen kann. 

EXTerne Sätze
	Das braucht nun wirklich nicht jeder zu wissen! Schaden kann's aber nicht.
	Eine dritte Möglichkeit ist die, eine externe (= nicht zur Datenbank gehörige) Liste von Datensätzen zu haben, die man zwar bearbeiten, dann aber nicht abspeichern will, sondern evtl. später oder in eine andere Datenbank. Solche "Listen", das sind Dateien im Grundformat (Typ .?LG) oder im Externformat (.?DT). Es war eines der Ziele bei der Entwicklung von a99, das Programm auch als Editor für solche Dateien nutzen zu können. Während einer Sitzung kann es, damit die Situation nicht völlig unübersichtlich wird, nur eine solche Datei geben. Die Sätze liegen dann aber, wie die der Typen A und B, im "Offline-Speicher". Das System weiß, welche Sätze zu dieser Teilmenge gehören und kann sie am Ende der Sitzung wieder zusammenhängend abspeichern, als Datei vom selben Typ wie vorher. Während der Sitzung hat man aber unbeschränkte Möglichkeiten, die Datenbank zu benutzen und darin auch zu arbeiten! Ferner wirken sich V14-Stammsatz-Ersetzungen auch auf die externen Sätze aus, wenn darin entsprechende Stammsatznummern sind. Nur an der Statusanzeige sind externe Sätze zu erkennen: da steht dann "EXT". 
	Eine Externe Datei kann man auf zwei Arten laden: 
	a)  Eintragung des Namens in die INI-Datei unter  Offline=<dateiname> 
	b)  Start von a99 mit Angabe des Namens:  a99 <dateiname>; als INI wird dann die Datei  a99.ini genommen! 
	[Speichern] : Dasselbe wie bei B: Aus dem Satz wird ein Mitglied der Datenbank, er wird in den Index aufgenommen und ist nicht mehr Teil des Offline-Speichers. Wird nun wiederum an diesem, nun gespeicherten Satz etwas geändert, hat man Situation A. Aber: Wenn am Ende der Sitzung die Offline-Datei wieder abgespeichert wird, ist dieser Satz nicht mehr dabei. Man kann dies nutzen, um gezielt Sätze herauszusuchen, die man in seine Datenbank speichern will. Wenn die Offline-Datei sehr groß ist (sie darf praktisch beliebig groß sein!) kann man die Arbeit auf viele Sitzungen verteilen, braucht sich aber nicht zu merken, welche Sätze man schon endgültig gespeichert hatte - die sind gar nicht mehr drin. Andere Sätze, die man verändert, aber nicht gespeichert hatte, bleiben im geänderten Zustand erhalten. Allerdings kann man auch bei externen Sätzen den [Wechseln]-Button anwenden und damit vor Sitzungsende den Ausgangszustand wiederherstellen! 
	Auch hier bedeutet "EDT" in der Statusanzeige: der Satz wird am Ende in diesem Zustand gespeichert. Auch hier kann man das mit [Wechseln] sofort ändern. 
	[Deaktivieren] : Der Hintergrund wird rot, der Satz wird mit "DEL" markiert, aber nicht sofort beseitigt, sondern erst am Ende der Sitzung wird er nicht mehr in die neue externe Datei geschrieben. So kann man es sich während der Sitzung immer noch anders überlegen. Der Button ändert seine Aufschrift zu [Aktivieren], womit man den Satz sofort wieder gültig machen kann. 

Mit Druck auf den Button [Daten in Bearb.] kann man jederzeit die Gesamtheit aller Offline-Datensätze besichtigen. In der Kurzliste kann man unterscheiden, was ein Extern-Satz oder NEU-Satz ist: diese erscheinen nicht in der üblichen Kurzfassung (weil sie auch nicht in der .STL-Datei vertreten sind), sondern man sieht die Kategorien als solche. 
Wenn am Ende einer Sitzung Sätze im Status EDT und/oder NEU existieren, kommt die Frage: 
	Sollen die neuen und bearbeiteten (noch nicht gespeicherten) Daten gespeichert werden? j/n 
Man kann hier mit [Abbrechen] antworten, um sich erst diese Sätze nochmals anzuschauen und einzeln zu entscheiden! Wenn man [Ja] sagt, werden sie alle gespeichert, wenn man [Nein] antwortet, sind alle noch nicht gespeicherten (neuen und alten) Sätze verloren, d.h. die neuen sind weg, die alten bleiben im alten Zustand. 

4. Einlesen weiterer externer Dateien

1. Menü "Datei | Externe Ergebnismenge laden". Sofort sieht man die Daten im Ergebnismengenfenster. Sie werden nicht sofort in die Datenbank übernommen, sondern sind erst einmal in der "Offline-Datei" als NEU-Sätze. Also keine Angst, etwas falsch zu machen.

2. Die Sätze kann man sich einzeln im Anzeigefenster anschauen, bearbeiten, mit den Buttons [Nächster] und [Voriger] darin vor- und zurückblättern. 

3. Jeden Satz kann man einzeln speichern mit dem Button [Speichern] (oder auch Alt+s). 

4. Oder man kann alle Daten auf einmal speichern: Menü "Datei | Offline-Datei -> Datenbank".  Spätestens beim Verlassen des Programms wird gefragt, ob die Offline-Daten gespeichert werden sollen - wenn man das nicht will, dann unbedingt mit "Nein" antworten. 

Damit es ganz klar wird, nochmal anders formuliert: 
Die während der Sitzung eingelesenen externen Daten sind zum Speichern in der Datenbank bestimmt, während die in der INI-Datei eingetragene oder beim Programmaufruf angegebene Datei zum Bearbeiten und anschließend wieder extern Abspeichern gedacht sind. Dadurch wird a99 zugleich zu einem Editor für nicht indexierte allegro-Daten. 

Sind Ihre Daten nicht in diesem Format oder können Sie es mit eigenen Mitteln nicht herstellen, lesen Sie das Handbuch, Kap. 5. Dort steht, wie man vorgeht. Im Kap. 11 wird beschrieben, für welche Formate es Umwandlungsparameter gibt, und wie man solche Parameter erstellt. 

5. Anmerkung zu Hilfedateien 
Auch Hilfedateien können statt schwarz auf weiß mit gelbem Hintergrund erscheinen, und zwar dann, wenn man den Dateinamen mit Zusatz .rtf angegeben hat. Das macht man, wenn man die Datei im Fenster bearbeiten und wieder speichern will. So erkennt man also auch in diesem Fall sofort den Bearbeitungszustand. 

?Bunte Daten=h =2. Bunte Daten 
?Hintergründe=h =1. H 
?So läuft eine Sitzung ab=h =3. So 
?DOS-Programme=h dos 
?hier=h commd=Offline-Suchbefehl