Hunspell DLL nutzen - zur laufzeit Rechtschreibung prüfen

  • Hi und guten Morgen zusammen.

    Ich hatte schon mal ein Thema aufgemacht wo es um das Thema Rechtschreibung ging. Warum ich ein neues aufmachen?
    Die Überschrift passt nicht zu meiner Frage und damit sie besser gefunden wird, ein neues Thema.

    Also ich habe eine dll von dem Rechtschreibe Programm "Hunspell"

    Ich habe auch ein "Delphi" beispiel und ein C++ Beispiel wie man sie nutzt, doch leider bin ich nicht ganz so bewandert in den beiden Sprachen.

    Ich würde gerne in mein Programm ( ein Editor für Berichtshefte für Azubis) eine "Echtzeit-Rechtschreibe-Prüfung" einauen.
    Diese Hunspelldll.dll verspricht das zu können.

    Da die Nutzung von dll Dateien bei Autoit möglich ist wende ich mich an euch in der Hoffnung das ihr mir helfen könnt diese DLL anzusprechen.

    Leider kann ich die DLL nicht anhängen und da ich mir nicht sicher bin ob ich den Link zur Downloadseite posten darf verbleibe ich erst mal so und warte auf Anmerkungen.

  • Ich habe mal die DLLs von der NHunspell-Bibliothek genommen. Da gibt es DLLs für 32 und 64 bit, die zusammen mit einem Wrapper für .NET angeboten werden. Die .NET-DLL braucht man als AutoIt-Nutzer natürlich nicht, aber die anderen beiden funktionieren einwandfrei auch ohne ihn ;)
    http://nhunspell.sourceforge.net/

    Ein deutsches Wörterbuch gibt es hier:
    http://wiki.services.openoffice.org/wiki/Dictionar…rmany.2C_....29
    (Ich hab diese genommen: Recommended version (requires OpenOffice.org 2.0.2 or later): und umbenannt nach de-DE.aff bzw. de-DE.dic )

    Spoiler anzeigen
    [autoit]

    #include"Hunspell.au3"
    #include<Array.au3>
    _HunspellLoad('Hunspellx86.dll', 'Hunspellx64.dll') ; DLL laden (erst die x86-DLL (32bit), dann die x64-DLL (64bit))
    $hHunspell = _HunspellInit(@ScriptDir&'\de-DE.aff', @ScriptDir&'\de_DE.dic') ; Wörterbuch laden
    While 1
    $sWord = InputBox("Wort eingeben", "Ein Wort zur Überprüfung eingeben: ") ;Wort holen
    If $sWord = '' Then ExitLoop
    If Not _HunspellSpell($hHunspell, $sWord) Then ; Korrektheit überprüfen
    $asSuggest = _HunspellSuggest($hHunspell, $sWord) ; Vorschläge für Wort
    If @error Then
    MsgBox(0, 'Wort falsch', '"' & $sWord & '" ist unbekannt.')
    Else
    _ArrayDisplay($asSuggest, 'Korrekturvorschläge für "' & $sWord & '"')
    EndIf
    Else
    MsgBox(0, 'Wort OK', '"' & $sWord & '" wurde richtig geschrieben')
    EndIf
    WEnd
    _HunspellFree($hHunspell)

    [/autoit] [autoit][/autoit] [autoit]

    $hHyphen = _HyphenInit(@ScriptDir&'\hyph_de_DE.dic')
    $asSuggest = _HyphenHyphenate($hHyphen, "fußballplatz")
    _ArrayDisplay($asSuggest,"Silbentrennung (1 = Trennstelle)")
    _HyphenFree($hHyphen)

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    Funktionsbeschreibungen sind keine dabei, da ich noch keine gefunden habe, aber das Beispiel sollte das wichtigste verdeutlichen ;)

    //Edit: Hab noch die Funktionendeklarationen für Hyphen reingemacht, aber kein Beispiel.
    //Edit: Fehler bei Hyphen behoben ;)

  • Hey Super!

    Genau so hab ich mir das vorgestellt. Jetzt werd ich das ganze noch so anpassen das ich das in Echtzeit hab und fertig ist das ganze.

    Vielen Dank von mir, ich hatte auch schon den gleichen Ansatz aber leider mit weniger Erfolg, lag vielleicht auch daran das ich die DLL von Hunspell genommen hatte.

    Hunspelldll.dll version 1.1.4

    Aber mit den zwei klappt es prima.

    noch mals vielen dank.

    Wenn ich das hinbekomme sollte so wie ich mir das vorstelle werd ich das ganze mal posten damit andere das auch nutzen können.

    gruß nefas

  • Hm leider funktioniert bei mir die Example nicht. Bekomme folgende Fehlermeldung:

    "AutoIt v3 Script funktioniert nicht mehr - Eub Problem hat die richtige Ausführung dieses Programms verhindert. Schließen Sie das Programm"

    So eine Rechtsschreibprüfung were für mich wirklich intereasannt.

  • Du solltest vielleicht auch mal früher auf das Datum des Posts schauen. Zwischenzeitlich gabs da "einige" AutoIt-Versionen.