3 Textformate

3.1 Das TXT-Format
3.2 Das DOC-Format
3.3 Das HTML-Format

Zum vorigen Kapitel Zum Inhaltsverzeichnis Zum nächsten Kapitel


3.1 Das TXT-Format

Als erstes Beispiel für ein Dokument wollen wir eine einfache Text-Datei studieren. Unter Windows können Sie Text-Dateien mit dem Text-Editor namens "Editor" erzeugen.

Aufgaben:
  1. Erzeugen Sie auf Ihrem Rechner mit dem "Editor" eine kurze Text-Datei mit folgendem Inhalt:

    (Text-)Editor mit Beispiel.txt

    Speichern Sie diese Datei auf Ihrem privaten Laufwerk unter dem Namen "Beispiel.txt" ab.

  2. Laden Sie diese Datei "Beispiel.txt" in den Hex-Editor. Was fällt Ihnen im Unterschied zu den im vorigen Abschnitt gemachten Beobachtungen auf?
    Bevor Sie weiterlesen, sollten Sie mindestens 2 Punkte dazu aufschreiben!


Text-Dateien tragen üblicherweise (aber nicht immer!) die Endung ".TXT". Sie haben ein recht einfaches, aber weit verbreitetes Dateiformat, das in vielen Fällen sogar den Datenaustausch zwischen verschiedenen Betriebssystem-Plattformen ermöglicht. Im Hex-Editor wird die Datei "Beispiel.txt" etwa folgendermaßen dargestellt:

HexEdit mit Beispiel.txt


Bei genauerer Betrachtung dieses Beispiels kann man folgendes feststellen:
Die wichtigste Erkenntnis ist, dass der Text offenbar so abgespeichert wird, dass jedem Zeichen eindeutig ein Bytewert entspricht. Die zugrundeliegende Zuordnung zwischen Zeichen und Bytewerten heißt ASCII-Code ("American Standard Code for Information Interchange"). Der ASCII-Code wurde schon 1963 vorgeschlagen; zehn Jahre später hat ihn schließlich die "International Standards Organisation" als internationale Norm festgeschrieben (ISO 636). Weitere historische Details findet man im Internet, z.B. bei einer Recherche zu den Stichworten "ascii character encoding history".

Zunächst wurden nur die ersten 128 der 256 möglichen Bytewerte mit je einem Zeichen belegt, also all diejenigen Bytewerte, deren höchstwertiges Bit den Wert "0" hat. (Damit ist ASCII also zunächst nur ein 7-Bit-Code!) Die 32 ersten Bytewerte wurden für sogenannte "Steuerzeichen" reserviert, Zeichen also, die normalerweise nicht am Bildschirm dargestellt oder ausgedruckt werden. Die folgende Tabelle zeigt den kompletten ASCII-Code. In jeder Spalte steht links die Hex-Darstellung des Byte und rechts daneben das zugehörige Zeichen. Bei den Zeichen mit den Nummern 00h bis 1Fh sowie 7Fh ist lediglich eine Beschreibung angegeben, da es sich dabei um nicht-druckbare Zeichen handelt. Das Zeichen mit der Nummer 20h fehlt nicht etwa, sondern es ist das Leerzeichen, das Sie in der Tabelle (nicht) sehen ;-).


ASCII-Tabelle
+---------------------------------------------------------------+
| 00 NUL| 01 SOH| 02 STX| 03 ETX| 04 EOT| 05 ENQ| 06 ACK| 07 BEL|
| 08 BS | 09 HT | 0A NL | 0B VT | 0C NP | 0D CR | 0E SO | 0F SI |
| 10 DLE| 11 DC1| 12 DC2| 13 DC3| 14 DC4| 15 NAK| 16 SYN| 17 ETB|
| 18 CAN| 19 EM | 1A SUB| 1B ESC| 1C FS | 1D GS | 1E RS | 1F US |
| 20    | 21  ! | 22  " | 23  # | 24  $ | 25  % | 26  & | 27  ' |
| 28  ( | 29  ) | 2A  * | 2B  + | 2C  , | 2D  - | 2E  . | 2F  / |
| 30  0 | 31  1 | 32  2 | 33  3 | 34  4 | 35  5 | 36  6 | 37  7 |
| 38  8 | 39  9 | 3A  : | 3B  ; | 3C  < | 3D  = | 3E  > | 3F  ? |
| 40  @ | 41  A | 42  B | 43  C | 44  D | 45  E | 46  F | 47  G |
| 48  H | 49  I | 4A  J | 4B  K | 4C  L | 4D  M | 4E  N | 4F  O |
| 50  P | 51  Q | 52  R | 53  S | 54  T | 55  U | 56  V | 57  W |
| 58  X | 59  Y | 5A  Z | 5B  [ | 5C  \ | 5D  ] | 5E  ^ | 5F  _ |
| 60  ` | 61  a | 62  b | 63  c | 64  d | 65  e | 66  f | 67  g |
| 68  h | 69  i | 6A  j | 6B  k | 6C  l | 6D  m | 6E  n | 6F  o |
| 70  p | 71  q | 72  r | 73  s | 74  t | 75  u | 76  v | 77  w |
| 78  x | 79  y | 7A  z | 7B  { | 7C  | | 7D  } | 7E  ~ | 7F DEL|
+---------------------------------------------------------------+

Gewisse Zeichen wie z.B. "ç", "å", "ß" oder die deutschen Umlaute fehlen im ASCII-Code. Sie werden durch Byte-Werte dargestellt, bei denen das höchstwertige Bit gesetzt ist, deren dezimaler Wert also größer als 127 ist. Der Hex-Editor stellt in der Text-Interpretation des Datei-Inhalts stets nur die druckbaren Zeichen des ASCII-Codes dar; alle anderen Zeichen werden durch einen Punkt (ASCII-Nr. 2Eh) angedeutet.

Eine besondere Rolle spielt die Bytefolge 0Dh 0Ah. Sucht man im Hex-Editor nach dieser Bytefolge und vergleicht mit der Darstellung der entsprechenden Textstelle im Text-Editor, dann wird der Schluß nahegelegt, dass mit dieser Bytefolge Zeilen-Umbrüche kodiert werden. Allerdings werden nur sogenannte "harte" Umbrüche in der Datei vermerkt, also solche, die der Benutzer bei der Eingabe durch Drücken der ENTER-Taste verursacht hat. "Weiche" Zeilenumbrüche, die der Texteditor auf dem Bildschirm selbständig macht, weil der Text dem rechten Rand des Fensters bedrohlich nahe kommt, werden offenbar nicht in die Datei geschrieben.




3.2 Das DOC-Format

Ein Mangel des ASCII-Text-Formates ist es, dass keinerlei Textattribute wie Fettdruck, Unterstreichen usw. verfügbar sind. Solche "formatierten Texte" sind die Domäne der sogenannten "Textverarbeitungsprogramme".

Aufgaben:
  1. Starten Sie WORD, öffnen Sie ein neues Dokument, importieren Sie die Datei "Beispiel.txt" (z.B. aus dem "Editor" über die Zwischenablage), setzen Sie das Wort "doch" in Fettschrift und speichern Sie dieses Dokument auf Ihrem privaten Laufwerk unter dem Namen "Beispiel.doc" ab.

  2. Ermitteln Sie die Dateigrößen von "Beispiel.txt" und "Beispiel.doc". Laden Sie dann "Beispiel.doc" in den Hex-Editor. Was fällt Ihnen im Unterschied zu den beim TXT-Format gemachten Beobachtungen auf?
    Bevor Sie weiterlesen, sollten Sie mindestens 3 Punkte dazu aufschreiben!


Auffällig ist, dass die erzeugte DOC-Datei sehr viel größer ist als die als Vorlage dienende TXT-Datei. Dies ist insofern erstaunlich, als der einzige Unterschied im Erscheinungsbild der beiden Texte darin besteht, dass das Wort "doch" im WORD-Text in Fettschrift erscheint. Betrachtet man die DOC-Datei nun mit dem Hex-Editor, dann stellt man folgendes fest:

(Diese Beschreibung bezieht sich auf ein mit WORD 7.0 hergestelltes Dokument. Bei anderen WORD-Versionen können sich im Detail Abweichungen ergeben.)

Natürlich ist das Format von DOC-Dateien für weit schwierigere Aufgaben vorbereitet als wir sie hier vorliegen haben. Es ist daher zu erwarten, dass viele der Abschnitte, die jetzt mit informationslosen Wiederholungen desselben Byte-Wertes angefüllt sind, bei einem komplexeren Dokument mit echten Informationen belegt werden. Bemerkenswert ist aber auch, dass WORD ohne unsere explizite Einwilligung recht eigenmächtig eine Menge zusätzlicher Daten in das Dokument packt.




3.3 Das HTML-Format

Ein Textformat, bei dem der Benutzer eine sehr viel bessere Kontrolle über den Inhalt seiner Dokument-Dateien haben kann, ist das HTML-Format (Hyper Text MarkUp Language). Dies ist derzeit das Standard-Format für Internet-Seiten.

Die Datei "Beispiel.html" enthält eine HTML-Version unseres kurzen Beispiel-Textes. Diese Datei ist zwar größer als die TXT-Datei, aber deutlich kleiner als die DOC-Datei. Wir laden "Beispiel.html" in den Hex-Editor und erhalten die folgende Anzeige:

HexEditor mit Beispiel.html


Wir stellen fest:

Insgesamt erweist sich also eine HTML-Datei als eine "normale" Text-Datei, die demnach auch mit einem gewöhnlichen ASCII-Editor erzeugt und bearbeitet werden kann. Der Benutzer hat damit die totale Kontrolle über den Inhalt der Datei: wer z.B. seinen Namen nicht nennen mag, der braucht das nicht zu tun. (Es ist jedoch guter Stil, dass man in jede für die Veröffentlichung bestimmte Datei einen Vermerk über den Autor hineinschreibt.)

Wenn der Benutzer jedoch eine HTML-Datei mit einem ASCII-Editor erzeugt, dann ist er auch selbst dafür verantwortlich, dass sie syntaktisch korrekt ist, d.h. dass alle darin enthaltenen Steueranweisungen "richtig geschrieben" sind. Nur dann kann ein Browser sie verstehen und ausführen, wenn er den Text darstellen soll. Dazu muss der Autor "HTML können", also z.B. wissen, mit welcher Folge von ASCII-Zeichen man Fettdruck ein- und ausschaltet, eine bestimmte Schriftgröße einstellt oder eine Textzeile zentriert. Natürlich gibt es für diese Aufgaben auch spezielle Editor-Programme. Z.B. kann auch WORD HTML-Dokumente erzeugen. Allerdings weiß der Benutzer in diesem Fall wieder nicht, was dann alles in der Datei drinsteht. Zumindest aber kann er es nachträglich kontrollieren, indem er die erzeugte HTML-Datei in einen ASCII-Editor lädt.

Zur Textformatierung setzt man HTML-Steuersequenzen ein, sogenannte "tags". Alle "tags" haben dasselbe Format: sie bestehen aus einem öffnenden "<"-Zeichen, einer Zeichenkette und einem schließenden ">"-Zeichen. Die Zeichenkette enthält den eigentlichen Formatierungsbefehl.

Viele der Tags treten paarweise auf und umschließen dabei den Text, auf den sie wirken sollen. Soll z.B. in dem Satz
    "Und fett geht auch!"
das Wort "fett" in Fettschrift erscheinen, dann ist in HTML zu schreiben:
    "Und <b>fett</b> geht auch!"
was dann im Browser so erscheint:
    "Und fett geht auch!"

Der folgende Block zeigt ein Minimalgerüst für ein HTML-Dokument:

Das gesamte Dokument wird von einem HTML-Tag umschlossen, das einen HEAD- und einen BODY-Abschnitt umfaßt. Im HEAD-Abschnitt steht der Titel des Dokuments. Bei der Anzeige des Dokuments im Browser wird aber nur das sichtbar, was im BODY-Abschnitt steht. Dort sind also die eigentlichen Inhalte unterzubringen.

Für die Formatierung einzelner Textteile im BODY-Abschnitt stehen (u.a.) folgende Tag-Paare zur Verfügung:


Für die Ausrichtung ganzer Textabschnitte gibt es (z.B.) die verschiedenen Varianten des "div"-Tags:


Diese kurze Übersicht soll hier zunächst einmal genügen. Wer sich für weitergehende Fragen wie z.B. die Einbindung von Grafiken, das Setzen von "Links" oder die Verwendung von JavaScript informieren möchte, findet im Internet auf den Self-HTML-Seiten von Stefan Münz eine gute Referenz zu den Sprachelementen von HTML.

Wenn man HTML-Dokumente für einen möglichst großen Leserkreis erstellen will, sollte man die folgenden Punkte bedenken:
Trotz dieser Einschränkungen ist HTML derzeit das beste Format für die Veröffentlichung von "elektronischen" Dokumenten, da es nicht an ein bestimmtes Betriebssystem gebunden ist und die einfache Verbreitung über das Internet ermöglicht.




Übungen:
  1. Eine Datei enthält die folgenden Bytes:
      57 65 6E 6E 20 53 69 65 20 6F 72 64 65 6E 74 6C
      69 63 68 20 75 65 62 65 6E 2C 20 6B 6F 65 6E 6E
      65 6E 20 53 69 65 0D 0A 76 6F 6E 20 42 65 72 75
      66 20 41 53 43 49 49 2D 45 64 69 74 6F 72 20 77
      65 72 64 65 6E 2E 20
      
    Stellen Sie mit "HexEdit" eine solche Datei her, speichern Sie sie unter dem Namen "Geheim.txt" ab und ermitteln Sie Ihren Inhalt. (Beachten Sie, dass "HexEdit" zwischen Einfüge- und Überschreib-Modus unterscheidet.)

  2. Rufen Sie die "Zeichentabelle" von Windows auf. Ein Vergleich mit der obigen ASCII-Tabelle zeigt, wie die Zeichen in ihr angeordnet sind. Die "Zeichentabelle" enthält aber zusätzlich noch Zeichen mit Nummern oberhalb von 127. Ermitteln Sie die Bytewerte, mit denen die deutschen Sonderzeichen dargestellt werden. Stellen Sie dann mit "HexEdit" eine zweite Version "Geheim2.txt" her, in der echte deutsche Sonderzeichen verwendet werden, wo immer das nötig ist.
    Laden Sie die geänderte Datei zur Kontrolle in den (Windows-Text-)"Editor".

  3. Laden Sie die Datei "Beispiel.txt" in den (Windows-Text-)"Editor" und ergänzen Sie die Daten zu einem möglichst schlanken, aber vollständigen HTML-Dokument. Führen Sie außerdem folgende Änderungen durch:

    • Die Überschrift (1. Zeile) soll fett, in größerer Schrift und zentriert erscheinen.
    • Das Wort "Text-Datei" wird durch ein kursives "HTML-Datei" ersetzt.
    • Unter dem Text soll rechtsbündig das Erstellungsdatum und Ihr Name erscheinen.

    Speichern Sie die geänderte Datei unter "Beispiel2.html" auf Ihrem privaten Laufwerk ab, und kontrollieren Sie ihr Erscheinungsbild, indem Sie sie in einen Browser laden.




Zum vorigen Kapitel Zum Inhaltsverzeichnis Zum nächsten Kapitel