Warning: include(../pages/header.inc) [function.include]: failed to open stream: No such file or directory in /is/htdocs/wp1114857_5LYX61RYAW/web/de/teamos2trier/www/html/tipps/heise.php on line 9

Warning: include(../pages/header.inc) [function.include]: failed to open stream: No such file or directory in /is/htdocs/wp1114857_5LYX61RYAW/web/de/teamos2trier/www/html/tipps/heise.php on line 9

Warning: include() [function.include]: Failed opening '../pages/header.inc' for inclusion (include_path='.:/usr/share/pear/php5') in /is/htdocs/wp1114857_5LYX61RYAW/web/de/teamos2trier/www/html/tipps/heise.php on line 9

Heise Register für OS/2   Version 1.0a

(Hinweis des Webmasters: Leider noch nicht besonders schön formatiert, da der Artikel ursprünglich in einem anderem Format vorlag und ich noch keine Zeit hatte, ihn "umzubauen" :-)

Fehler:

 Beim Aktualisieren des Registers für die c't 22/2004 kommt es
beim Lernen zur Meldung "Unerwarteten Fehler (285)!". Das Anhängen
der Update-Datei und das anschliessende Prüfen der FRM-Datei
läuft fehlerfrei.

Ursache ist der Eintrag für den Artikel

    Sven Hansen: Antennengucker c't 22/2004, S. 172

dessen Liste der Schlagwörter mit 492 Zeichen zu lang ist.

Gemäss Hilfe [1] sieht die Struktur eines Datensatzes so aus:

    1. Zeile: Titel (max. 80 Zeichen)
    2. Zeile: Untertitel (max. 80 Zeichen)
    3. Zeile: Autoren (max. 80 Zeichen)
    4. Zeile: Redakteur (max. 3 Zeichen, linksbündig)
    5. Zeile: Seite (max. 3 Zeichen, rechtsbündig)
    6. Zeile: Ausgabe (max. 2 Zeichen, rechtsbündig)
    7. Zeile: Zeitschrift, Jahrgang (1 Zeichen für Zeitschrift, 2 Zeichen
              für Jahrgang)
    8. Zeile: Querverweise (max. 80 Zeichen)
    9. Zeile: Schlagwörter (max. 254 Zeichen)

 In der Praxis sind (manchmal, nicht reproduzierbar!) bis zu 401
Zeichen Schlagwörter möglich. Wird die Liste der
Schlüsselwörter dann noch länger, kommt es auch zu
unsinnigen Fehlermeldungen beim Prüfen der FRM-Datei.

 Die Länge anderer Zeilen scheint nicht zu stören. Bis c't
03/2005 beträgt die maximale Länge anderer Zeilen:

    1. Zeile: 115 Zeichen
    2. Zeile: 124 Zeichen
    3. Zeile: 121 Zeichen


Idee / Workaround:

 Den fehlerhaften Datensatz duplizieren und die
Schlüsselwörter aufteilen. Als Folge wird der Artikel danach
bei Suche ohne Schlüsselwörter mehrfach gefunden.

 Im weiteren Verlauf stellt sich aber heraus, dass solche
Überlängen häufiger auftreten. Es ist also angebracht,
ein Programm "HeiseFix" für das Aufteilen der Datensätzte zu
schreiben.


Neuer Ablauf beim Update:

Die Schritte zum Update des Registers sind dann:

   1. Alte Datei sichern:

          Bei erstem Upgrade alte FRM-Datei sichern:
            REN ctab2002.frm ctab2002.bup
          Bei allen weiteren Updates alte NEW-Datei sichern:
            REN ctab2002.new ctab2002.bup

   2. Neue Update-Dateien anhängen:
        COPY ctab2002.bup+ctin0422.cti+ctin0423.cti+..+ctin0426.cti ctab2002.new
   3. Aus dem neuen Gesamtverzeichnis die FRM-Datei generieren:
        heisefix ctab2002.new ctab2002.frm
   4. Heise-Register für OS/2 starten und die FRM-Datei erst prüfen, dann
      lernen lassen.

 Vorteil dieses Vorgehens ist, dass man eine Datei hat, die keine
doppelten Sätze enthält; ein Split ist eben einfacher gemacht
als ein Union. Die FRM-Datei für das Heise-Register wird dann nach
jedem Update aus dem "Original" (hier .new) mit HeiseFix generiert.


Zum Programm HeiseFix:

 Das Programm darf frei kopiert und benutzt werden, es gilt die GPL
(http://agnes.dida.physik.uni-essen.de/~gnu-pascal/gpl-ger.html). Es
kann mit Borland-Pascal 7.0 übersetzt werden, wenn gewünscht
werden mit den c't-Patches [2,3] auch OS/2-Exe-Dateien erzeugt. Die so
übersetzten Programme können nur mit 8.3-Dateinamen umgehen.
Das Programm korrigiert nur die Überlänge der
Schlüsselwörter. Die Länge anderer Zeilen wird zwar
geprüft und ggf. kritisiert aber nicht geändert. Existierende
Original-Datei und neu zu erzeugende korrigierte Datei müssen
verschieden sein. Sonst wird die Original-Datei gelöscht.

In dem obigen Beispiel gibt HeiseFix aus:

 HeiseFix  Version 1.0alpha1                                  Autor: W. Bockey
 Korrekur fuer Heise-Register unter OS/2

 Original file:  ctab2002.new
 Corrected file: ctab2002.frm

 RecNo  1234  Idx 2  Line  11108  Err  2: String too long   87> 80
 RecNo  1276  Idx 3  Line  11487  Err  2: String too long   88> 80
 RecNo  1277  Idx 3  Line  11496  Err  2: String too long  121> 80
 ...
 RecNo  7237  Idx 2  Line  65135  Err  2: String too long   83> 80
 RecNo  7390  Idx 9  Line  66519  Err  2: String too long  297>254
 RecNo  7432  Idx 9  Line  66897  Err  2: String too long  302>254
 ...

Dabei bedeuten:

    RecNo: Nummer des Datensatzes, Zählung ab 0
    Idx: Nummer der Zeile innerhalb des Datensatzes, Zählung ab 1
    Line: Zeilennummer in Original-Datei, Zählung ab 1

    Err: Nummer des Fehlers, Fehlertext und ggf. tatsächliche und
    erlaubte Länge

Bsp. 1: "RecNo 1234 Idx 2 Line 11108 Err 2: String too long 87> 80"

    Datensatz Nummer 1234
    Zeile 2 des Datensatzes (Untertitel)
    Zeile 11108 in Datei

    Fehler: Zeichenkette ist zu lang. Tatsächliche Länge 87
    Zeichen. Maximal erlaubte Länge: 80 Zeichen.

    Dieser Fehler wird nicht korrigiert, da es sich nicht um die
    Schlüsselwörter handelt.

Bsp. 2: "RecNo 7390 Idx 9 Line 66519 Err 2: String too long 297>254"

    Datensatz Nummer 7390
    Zeile 9 des Datensatzes (Schlüsselwörter)
    Zeile 66519 in Datei

    Fehler: Zeichenkette ist zu lang. Tatsächliche Länge 297
    Zeichen. Maximal erlaubte Länge: 254 Zeichen.

    Dieser Fehler wird korrigiert indem der Datensatz dupliziert wird und
    die Schlüsselwörter auf die beiden Datensaetze verteilt
    werden.


Download:

Download hier (http://bockey.teamos2trier.de/MB_DOS2/HEISEFIX.LZH).
Datei HeiseFix.OS2 oder HeiseFix.DOS nach HeiseFix.Exe umbenennen.


Alternativen zum Heise-Register:

    * HTTP-Daemon von c't-ROM / c't-plus-ROM:
      Nachteil ist, dass man meines Wissens das Register nicht akutalisieren
      kann. Im verwendeten Register sind aber alle Artikel bis zur letzten
      Ausgabe auf der CD enthalten.

    * Online-Suche auf http://www.heise.de (http://www.heise.de).


Literatur:

[1] Hilfe des Heise-Registers

[2] Matthias Withopf:
Winderkind, Borland Pascal lernt die OS/2-Programmierung
c't 11/1993 S. 240-246

[3] Stefan Krude:
Besser gepatcht (Leserbrief zu [2])
c't 12/1993 S. 8

Warning: include(../pages/footer.inc) [function.include]: failed to open stream: No such file or directory in /is/htdocs/wp1114857_5LYX61RYAW/web/de/teamos2trier/www/html/tipps/heise.php on line 193

Warning: include(../pages/footer.inc) [function.include]: failed to open stream: No such file or directory in /is/htdocs/wp1114857_5LYX61RYAW/web/de/teamos2trier/www/html/tipps/heise.php on line 193

Warning: include() [function.include]: Failed opening '../pages/footer.inc' for inclusion (include_path='.:/usr/share/pear/php5') in /is/htdocs/wp1114857_5LYX61RYAW/web/de/teamos2trier/www/html/tipps/heise.php on line 193