HashMaker

The program HashMaker makes it possible to extract word lists and affix files from iSpell dictionaries, as well as to extend, combine and integrate word lists into iSpell dictionaries. From the own word lists, which are stored as simple text files, it is now very easy to create corresponding iSpell dictionaries.

The menu:

HASHMAKER ...
———————————————————————————————————————————————————————
 Hash File (in)  : 
 Affix File (in) :
 List File (in)  :
 Codepage Group  :
 ISO_8859_       :
 Hash File (out) :
 Affix File (out):
 List File (out) :
———————————————————————————————————————————————————————

input

Hash File (in)
ISpell dictionary for affix file or list file extraction.
Affix File (in)
Affix file with prefixes and/or suffixes.
List File (in)
List file of words (text file with one word per line) for integration into the new dictionary.
Codepage Group
ISO_8859_
Code page of the input and output files.

output

Hash File (out)
Name of the new dictionary.
Affix File (out) :
Name of the new affix file.
List File (out) :
Name of the new list file.

Create a dictionary newdict.hash from an affix file and a word list:

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
———————————————————————————————————————————————————————

input

Hash File (in)
-
Affix File (in)
Can be omitted if the word list shall be used without affixes.
List File (in)
List file of words (text file with one word per line) for integration into the new dictionary.
Codepage Group
ISO_8859_
Code page of the input files.

output

Hash File (out)
New dictionary.
Affix File (out) :
Optional generation of a new affix file from newdict.hash (check).
List File (out) :
Optional output of the list file of newdict.hash (check)

Extract an affix file and/or a word list from a hash file:

HASHMAKER  Version xxx
———————————————————————————————————————————————————————
 Hash File (in)   : anydict.hash
 Affix File (in)  : 
 List File (in)   : 
 Codepage Group   : ISO
 ISO_8859_        : 1
 Hash File  (out) : 
 Affix File (out) : newdict.aff
 List File (out)  : newdict.list
———————————————————————————————————————————————————————

input

Hash File (in)
Hash file from which affix file and list file shall be extracted.
Affix File (in)
-
List File (in)
-
Codepage Group
ISO_8859_
Will be set automatically to the code page groupe of anydict.hash.

output

Hash File (out)
-
Affix File (out) :
Can be omitted if only the word list shall be extracted.
List File (out) :
Can be omitted if only the affix file shall be extracted.

Extend a word list of a hash file (add new words):

HASHMAKER  Version xxx      
———————————————————————————————————————————————————————
 Hash File (in)   : anydict.hash
 Affix File (in)  : 
 List File (in)   : mydict.list
 Codepage-Group   : ISO
 ISO_8859_        : 1
 Hash File  (out) : newdict.hash
 Affix File (out) : newdict.aff
 List File (out)  : newdict.list
———————————————————————————————————————————————————————

input

Hash File (in)
Used hash file for the generation.
Affix File (in)
-
List File (in)
Words that shall be added to the word list of anydict.hash.
Codepage Group
ISO_8859_
Will be set automatically to the code page (groupe) of anydict.hash.

output

Hash File (out)
New hash file with extended word list.
Affix File (out) :
Optional output of the affix file of newdict.hash (check).
List File (out) :
Optional output of the word list of newdict.hash (check).

Exchange the affix file of a hash file (insert a new one):

HASHMAKER  Version xxx      
———————————————————————————————————————————————————————
 Hash File (in)  : anydict.hash
 Affix File (in) : anydict.aff
 List File (in)  : mydict.list
 Codepage-Group  : ISO
 ISO_8859_       : 1
 Hash File (out) : newdict.hash
 Affix File (out): newdict.aff
 List File (out) : newdict.list
———————————————————————————————————————————————————————

input

Hash File (in)
Used hash file for the generation.
Affix File (in)
New affix file for the dictionary.
List File (in)
Additional words for the new hash file. Can be omitted if the word list shall be used unchanged.
Codepage Group
ISO_8859_
Will be set automatically to the code page (groupe) of anydict.hash.

output

Hash File (out)
New hash file with changed affix file.
Affix File (out) :
Optional output of the affix file of newdict.hash (check).
List File (out) :
Optional output of the word list of newdict.hash (check).

Comment

The KADMOS ReSpell functions work with iSpell dictionaries, as far as they contain a code page information. Usually this information is stored in the HashHeader after strtypestart. There one of the following names is expected and searched for: latin1 to latin8, cyrillic, greek, and hebrew for ISO code pages, dos437 to dos874 for DOS code pages, win1252 to win1257 for Windows code pages. If there are no stringtypes specified in HashHeader (nstrchartype==0), the then useless value of HashHeader.strtypestart is taken as code page (CODE_PAGE_437 to CODE_ISO_8859_15 or CODE_ASCII).

The following overview lists the code page names of iSpell dictionaries and the related KADMOS code pages:
dos437    CODE_PAGE_437
...       ...
dos866    CODE_PAGE_874
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
Thai      CODE_ISO_8859_11
latin7    CODE_ISO_8859_13
latin8    CODE_ISO_8859_15
ascii     CODE_ASCII
        

If an iSpell dictionary doesn't contain code page information, then an equal dictionary can be generated by HashMaker, containing the specified code page information:

If an iSpell dictionary doesn't contain stringtypes (nstrchartype==0), then with HashMaker directly a new dictionary can be generated. In this case only the code page setting under strtypestart has to be done.