Rechtschreibkontrolle während der Eingabe

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
alb
Beiträge: 4
Registriert: Di 14. Nov 2017, 15:34

Rechtschreibkontrolle während der Eingabe

Beitrag von alb » Mo 14. Jan 2019, 00:44

Hallo zusammen,

ich habe aus dem Handbuch diesen code für die Rechtschreibprüfung. Beim Ausführen zeigt er mit aber einen Zeichenfehler
,.
und sprinkt mit dem Kurser auf die
RtrimStr( stWort, ","), "."), "?"), "!"), "."),)
Stelle

LO Version: 6.0.6.2 (x64) Win10

Wer kann helfen? Was mach ich Falsch?

LG

Code: Alles auswählen

SUB MarkierungFehlerDirekt(oEvent AS OBJECT)

        GlobalScope.BasicLibraries.LoadLibrary("Tools")
        
        DIM aProp() AS NEW com.sun.star.beans.PropertyValue

        DIM oLinuSvcMgr AS OBJECT

        DIM oSpellChk AS OBJECT

        DIM oFeld AS OBJECT

        DIM arText()

        DIM stWort AS STRING

        DIM inlenWort AS INTEGER

        DIM ink AS INTEGER

        DIM i AS INTEGER

        DIM oCursor AS OBJECT

        DIM stText AS OBJECT

        oLinguSvcMgr = createUnoService("com.sun.star.linguistic2.LinguServiceManager")

        IF NOT IsNull(oLinguSvcMgr) THEN

                oSpellChk = oLinguSvcMgr.getSpellChecker()

        END IF
        oFeld = oEvent.Source.Model

        ink = 0

        IF oEvent.KeyCode = 1280 OR oEvent.KeyCode = 1284 THEN
         stText = Join(Split(oFeld.Text,CHR(10))," ")

arText = Split(RTrim(oFeld.Text)," ")
FOR i = LBound(arText) TO UBound(arText)
stWort = arText(i)
inlenWort = len(stWort)
stWort = Trim( RtrimStr( RtrimStr( RtrimStr( RtrimStr(
RtrimStr( stWort, ","), "."), "?"), "!"), "."),)


                        IF stWort <> "" THEN

                                oCursor = oFeld.createTextCursor()

                                oCursor.gotoStart(false)

                                oCursor.goRight(ink,false)

                                oCursor.goRight(inLenWort,true)

                                If Not oSpellChk.isValid(stWort, "de", aProp()) Then

                                        oCursor.CharUnderline = 9

                                        oCursor.CharUnderlineHasColor = True

                                        oCursor.CharUnderlineColor = RGB(255,51,51)

                                ELSE

                                        oCursor.CharUnderline = 0

                                END IF

                        END IF

                        ink = ink + inLenWort + 1

                NEXT

        END IF

END SUB

RobertG
Beiträge: 1965
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Rechtschreibkontrolle während der Eingabe

Beitrag von RobertG » Mo 14. Jan 2019, 16:24

Habe im Handbuch sofort nachgesehen: Dort ist das Komma auch nicht vorhanden.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

alb
Beiträge: 4
Registriert: Di 14. Nov 2017, 15:34

Re: Rechtschreibkontrolle während der Eingabe

Beitrag von alb » Mo 14. Jan 2019, 21:03

Hey, danke für die schnelle Antwort.
ich hatte den Code aus diesem Handbuch, ist zwar älter hatte gedacht es macht kein unterschied :)

wie gesagt vielen Dank.

RobertG
Beiträge: 1965
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Rechtschreibkontrolle während der Eingabe

Beitrag von RobertG » Mo 14. Jan 2019, 21:43

Hallo alb,

da muss dann etwas bei dem Kopieren daneben gelaufen sein. Ich habe das Handbuch in der Version eben kurz nachgesehen. An der Stelle hat sich wirklich nichts geändert. Am einfachsten ist es hier, die Beispieldateien dazu herunter zu laden. Bei den aktuelleren Handbüchern ist die entsprechende Datenbank "Beispiel_Autotext_Suchmarkierung_Rechtschreibung.odb" dabei.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Antworten