HashMaker

Das Programm HashMaker macht es möglich, aus iSpell-Wörterbüchern die Wortlisten und Affix-Dateien zu extrahieren, sowie Wortlisten zu erweitern, zu kombinieren und wiederum in iSpell-Wörterbücher zu integrieren. Aus eigenen Wortlisten, die als simple Text-Datei abgelegt sind, können nun ganz einfach entsprechende iSpell-Wörterbücher erzeugt werden.

Das Programmmenü:

        
HASHMAKER  Version xxx
———————————————————————————————————————————————————————
Hash-Datei  (ein) : 
Affix-Datei (ein) :
List-Datei  (ein) :
Codepage-Gruppe   :
ISO_8859_         :
Hash-Datei  (aus) :
Affix-Datei (aus) :
List-Datei  (aus) :
———————————————————————————————————————————————————————
      

Eingabe

Hash-Datei (ein) :
iSpell-Wörterbuch das als Grundlage verwendet werden soll.
Affix-Datei (ein) :
Affix-Datei mit möglichen Wortendungen, die verwendet werden sollen.
List-Datei (ein) :
List-Datei mit einer Wörterliste (ein Wort pro Zeile), die in die Ergebnisdateien eingebracht werden sollen.
Codepage-Gruppe :
Hier muss die Codepage von Affix-Datei (aus) : und List-Datei (aus) : angegeben werden.
SO_8859_ :
Hier muss die Codepage von Affix-Datei (aus) : und List-Datei (aus) : angegeben werden.

Ausgabe

Hash-Datei (aus) :
Name des zu erzeugenden Wörterbuchs.
Affix-Datei (aus) :
Name des zu erzeugenden Affix-Datei.
List-Datei (aus) :
Name des zu erzeugenden List-Datei.

Erzeugung eines Wörterbuches newdict.hash aus Affix-Datei und Wort-Liste:

        
HASHMAKER  Version xxx
———————————————————————————————————————————————————————
 Hash-Datei  (ein) :
 Affix-Datei (ein) : mydict.aff
 List-Datei  (ein) : mydict.list
 Codepage-Gruppe   : ISO
 ISO_8859_         : 1
 Hash-Datei  (aus) : newdict.hash       
 Affix-Datei (aus) : newdict.aff
 List-Datei  (aus) : newdict.list
———————————————————————————————————————————————————————
      

Eingabe

Affix-Datei (ein) : mydict.aff
Kann fehlen, falls die Wort-Liste unverändert gelten soll (siehe ISpell-Beschreibung).
List-Datei (ein) : mydict.list
Text-Datei mit den Wörtern (ein Wort pro Zeile), die in das Wörterbuch übernommen werden sollen.
Codepage-Gruppe : ISO
Hier muss die Codepage von mydict.aff und mydict.list angegeben werden.
ISO_8859_ : 1
Hier muss die Codepage von mydict.aff und mydict.list angegeben werden.

Ausgabe

Hash-Datei (aus) : newdict.hash
Neu erzeugtes Wörterbuch mit dem verwendeten Wortschatz.
Affix-Datei (aus) : newdict.aff
Optionale Ausgabe der Affix-Datei von newdict.hash (Check).
List-Datei (aus) : newdict.list
Optionale Ausgabe der Wort-Liste von newdict.hash (Check).

Extraktion der Affix-Datei und/oder der Wort-Liste aus einer Hash-Datei:

        
HASHMAKER  Version xxx
———————————————————————————————————————————————————————
 Hash-Datei  (ein) : anydict.hash
 Affix-Datei (ein) :
 List-Datei  (ein) :
 Codepage-Gruppe   : ISO
 ISO_8859_         : 1
 Hash-Datei  (aus) :
 Affix-Datei (aus) : anydict.aff
 List-Datei  (aus) : anydict.list
———————————————————————————————————————————————————————
      

Eingabe

Hash-Datei (ein) : anydict.hash
Quell-Wörterbuch, das erweitert werden soll.
Codepage-Gruppe : ISO
Wird automatisch auf Codepage von anydict.hash gesetzt.
ISO_8859_ : 1
Wird automatisch auf Codepage von anydict.hash gesetzt.

Ausgabe

Affix-Datei (aus) : anydict.aff
Kann fehlen, falls nur Wort-Liste gewünscht wird.
List-Datei (aus) : anydict.list
Kann fehlen, falls nur Affix-Liste gewünscht wird.

Erweiterung der Wort-Liste einer Hash-Datei (Aufnahme neuer Wörter):

        
HASHMAKER  Version xxx      
———————————————————————————————————————————————————————
 Hash-Datei  (ein) : anydict.hash
 Affix-Datei (ein) :
 List-Datei  (ein) : addwords.list
 Codepage-Gruppe   : ISO
 ISO_8859_         : 1
 Hash-Datei  (aus) : newdict.hash
 Affix-Datei (aus) : newdict.aff
 List-Datei  (aus) : newdict.list
———————————————————————————————————————————————————————
      

Eingabe

Hash-Datei (ein) : anydict.hash
Quell-Wörterbuch.
List-Datei (ein) : addwords.list
Zusätzlich aufzunehmende Worte.
Codepage-Gruppe : ISO
Wird automatisch auf Codepage von anydict.hash gesetzt.
ISO_8859_ : 1
Wird automatisch auf Codepage von anydict.hash gesetzt.

Ausgabe

Hash-Datei (aus) : newdict.hash
Name des zu erzeugenden Wörterbuchs mit erweiterter Wort-Liste.
Affix-Datei (aus) : newdict.aff
Optionale Ausgabe der Affix-Datei von newdict.hash (Check).
List-Datei (aus) : newdict.list
Optionale Ausgabe der Affix-Datei von newdict.hash (Check).

Einsetzung einer anderen Affix-Datei in eine Hash-Datei:

        
HASHMAKER  Version xxx      
———————————————————————————————————————————————————————
 Hash-Datei  (ein) : anydict.hash
 Affix-Datei (ein) : mydict.aff         
 List-Datei  (ein) : mydict.list
 Codepage-Gruppe   : ISO
 ISO_8859_         : 1                  
 Hash-Datei  (aus) : newdict.hash
 Affix-Datei (aus) : newdict.aff
 List-Datei  (aus) : newdict.list
———————————————————————————————————————————————————————
      

Eingabe

Hash-Datei (ein) : anydict.hash
Quell-Wörterbuch.
Affix-Datei (ein) : mydict.aff
Kann fehlen, falls die Wort-Liste nicht verändert werden soll.
List-Datei (ein) : mydict.list
Kann fehlen, falls die Wort-Liste nicht verändert werden soll.
Codepage-Gruppe : ISO
Wird automatisch auf Codepage von anydict.hash gesetzt.
ISO_8859_ : 1
Wird automatisch auf Codepage von anydict.hash gesetzt.

Ausgabe

Hash-Datei (aus) : newdict.hash
Wörterbuch mit neuer Affix-Datei Affix-Datei.
Affix-Datei (aus) : newdict.aff
Optionale Ausgabe der Affix-Datei von newdict.hash (Check).
List-Datei (aus) : newdict.list
Optionale Ausgabe der Wort-Liste von newdict.hash (Check).

Bemerkung

Die KADMOS ReSpell-Funktionen arbeiten mit iSpell-Wörterbüchern, sofern diese eine Codepage-Information enthalten. Üblicherweise ist diese Information im HashHeader ab strtypestart abgelegt. Dort wird dann nach einem der folgenden Namen gesucht: latin1 bis latin8, cyrillic, greek und hebrew für ISO-Codepages, dos437 bis dos866 für DOS-Codepages, win1252 bis win1257 für Windows-Codepages. Sofern keine stringtypes im HashHeader spezifiziert sind (nstrchartype==0), wird der (ansonsten sinnlose) Wert von HashHeader.strtypestart als Codepage interpretiert (CODE_PAGE_437 bis CODE_ISO_8859_15 oder CODE_ASCII).

Folgende Übersicht beschreibt die Zuordnung der Codepage-Namen von iSpell-Wörterbüchern und den KADMOS Codepages:

        
dos437   CODE_PAGE_437
...      ...
dos866   CODE_PAGE_866
win1250  CODE_PAGE_1250
...      ...
win1257  CODE_PAGE_1257
 
latin1   CODE_ISO_8859_1
latin2   CODE_ISO_8859_2
latin4   CODE_ISO_8859_4
cyrillic CODE_ISO_8859_5
greek    CODE_ISO_8859_7
hebrew   CODE_ISO_8859_8
latin5   CODE_ISO_8859_9
latin6   CODE_ISO_8859_10
latin7   CODE_ISO_8859_13
latin8   CODE_ISO_8859_15

ascii    CODE_ASCII
      

Falls ein iSpell-Wörterbuch keine Codepage-Information enthält, kann man sich mit dem HashMaker wie folgt ein gleichwertiges Wörterbuch mit Codepage-Information erzeugen:

Extraktion von Affix- und List-Datei aus dem Wörterbuch.

Edieren eines der entsprechenden Abschnitte mit defstringtype ... oder altstringtype..., indem als Name latin1 oder ähnliches eingetragen wird. Natürlich müssen die entsprechenden Einträge unter wordchar, stringchar oder altstringchar dieser Codepage entsprechen.

Die erzeugte List-Datei muss nötigenfalles ebenso in die gewünschte Codepage umgesetzt werden.

Generieren eines neuen iSpell-Wörterbuches aus geänderter Affix- und List-Datei.

Sofern ein iSpell-Wörterbuch keine Stringtypes enthält (nstrchartype==0), so kann mit dem HashMaker aus dieser Datei sofort ein neues Wörterbuch erzeugt werden, da in diesem Falle nur der Codepage-Eintrag unter strtypestart erfolgen muss.