[Résolu] [Writer] Erreur: Valeur de propriété incorrecte

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu] [Writer] Erreur: Valeur de propriété incorrecte

Messagepar OlivierR » 24 Juil 2010 18:19

Bonjour à tous,

J’essaie de récupérer les informations du correcteur orthographique, mais un simple test sur la validité d’un mot ne passe pas, et me renvoie invariablement l’erreur: Valeur de propriété incorrecte.

Code : Tout sélectionner   AgrandirRéduire
Sub Spell
   Dim locale As New com.sun.star.lang.Locale
   Dim word As String
   Dim bWordValid As Boolean

   locale.Language="fr" 'ISO 639
   locale.Country="FR"  'ISO 3166
   
   LinguService = createUnoService("com.sun.star.linguistic2.LinguServiceManager")
   spellChecker = LinguService.getSpellchecker()

   if not spellChecker.hasLocale(locale) Then
      msgbox "Le dictionnaire français est introuvable"
      exit sub
   endif
   
   'XRay spellChecker
   
   word = inputbox("Mot à vérifier:")
   while word <> ""
      bWordValid = spellChecker.isValid(word, locale, array())
      if bWordValid then
         msgbox word + " est valide"
      else
         msgbox word + " n’est pas valide"
      endif
      word = inputbox("Mot à vérifier:")
   wend
End Sub

Ce code est quasi-identique à celui récupéré ici (qui provoque la même erreur).

Cf. API: http://api.openoffice.org/docs/common/r ... ecker.html

Une idée de l’origine du problème?
Merci d’avance.

Fichier de test:
test_spellcheck.odt
(9.82 Kio) Téléchargé 101 fois
Dernière édition par OlivierR le 25 Juil 2010 00:03, édité 2 fois.
LibreOffice 6.2Windows 10Grammalecte, correcteur grammatical et orthotypographique
OlivierR
SuppOOrter
SuppOOrter
 
Message(s) : 1028
Inscrit le : 24 Mai 2006 21:34
Localisation : Lorraine, France

Re: [Writer] Erreur: Valeur de propriété incorrecte

Messagepar Jean-Louis Cadeillan » 24 Juil 2010 18:40

tu es sûr du troisième argument de la méthode isValid ?
Que contient array() ? Où est-il défini ?
A+
Jean-Louis
LibO 6.2.8.2 (x64 avec Java 1.8.0_231) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4550
Inscrit le : 03 Jan 2009 00:56

Re: [Writer] Erreur: Valeur de propriété incorrecte

Messagepar Churay » 24 Juil 2010 21:16

Bonsoir,

Jean-Louis Cadeillan a écrit:tu es sûr du troisième argument de la méthode isValid ?
Que contient array() ? Où est-il défini ?

Non, ça c'est bon : c'est une structure vide.
Il est impératif de passer un vecteur en paramètre (syntaxe unique quelle que soit la fonction).
Parfois, comme c'est le cas ici, le vecteur est vide parce que la fonction appelée n'en a pas besoin, mais la syntaxe est respectée.
Donc plutôt que de définir une variable (Dim arg()) qui ne sera pas utile, et passer en argument cette variable Arg() vide, on utilise souvent Array() qui passe un équivalent de Arg(), vide. (Je ne sais pas si je suis très clair, mais je me comprends :roll: )

Par contre, j'ai remplacé

Code : Tout sélectionner   AgrandirRéduire
       LinguService = createUnoService("com.sun.star.linguistic2.LinguServiceManager")
       spellChecker = LinguService.getSpellchecker()

par
Code : Tout sélectionner   AgrandirRéduire
       Dim v_spellChecker As Variant
       v_spellChecker = createUnoService("com.sun.star.linguistic2.SpellChecker")

trouvé dans un exemple de Pitonyak
Le Dim parce que j'aime bien définir clairement ce que j'utilise.
Et ne pas utiliser un nom déjà utilisé or SpellChecker est déjà utilisé...
C'est comme utiliser une variable nommée For ou Next : ça coince.

et bien évidemment
Code : Tout sélectionner   AgrandirRéduire
          bWordValid = spellChecker.isValid(word, locale, array())

par
Code : Tout sélectionner   AgrandirRéduire
          bWordValid = v_spellChecker.isValid(word, locale, array())


et ça marche

cOOordialement

PS : Merci de m'avoir fait découvrir spellchecker ;)
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
 
Message(s) : 2668
Inscrit le : 30 Avr 2009 05:54
Localisation : CATALUNYA

Re: [Writer] Erreur: Valeur de propriété incorrecte

Messagepar OlivierR » 25 Juil 2010 00:03

:shock: Basic ne tient pas compte de la casse non plus pour les noms de variables!
J’ai cherché pendant des heures ce qui clochait avec le troisième paramètre. :roll: J’ai bien fait de poser la question…
Merci pour le coup de main.
LibreOffice 6.2Windows 10Grammalecte, correcteur grammatical et orthotypographique
OlivierR
SuppOOrter
SuppOOrter
 
Message(s) : 1028
Inscrit le : 24 Mai 2006 21:34
Localisation : Lorraine, France


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)