[Résolu][Writer] rechercher les caractères formatés manuellement

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 !
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

[Résolu][Writer] rechercher les caractères formatés manuellement

Message par touvenant »


La modération vous a écrit: règles de cette section
Le balisage (à taper au clavier) doit être correctement orthographié (première lettre en majuscule puis le reste en minuscules).

Bonsoir à tous,
je souhaite rechercher tous les caractères qui ont reçu le format "gras", puis leur appliquer le style de caractère "accentuation forte"...

Cela correspond à :
  • ouvrir la fenêtre cherche et remplace,
  • taper ".*" dans la barre de recherche,
  • cliquer sur le bouton "format" et entrer "gras" dans le champ "style",
  • cliquer "OK",
  • cliquer "tout rechercher"
  • puis appliquer le style de caractère "accentuation forte"...
Je n'ai rien trouvé de concluant dans l'API

Je suis un ancien, j'ai travaillé 40 ans avant de me mettre à l'informatique et j'ai gardé des habitudes de travail :
J'attends d'avoir tous les outils et le matériel avant de commencer à travailler.
Je n'ai donc pas encore commencé à écrire la moindre ligne de code pour cette macro. Lorsque ce sera le cas, si je n'arrive pas à produire du code correct, je reviendrai le présenter...

En attendant :

Quelqu'un saurait-il où se trouve le XSearchDescriptor correpondant dans l'API ? (et le XSearchDescriptor pour les caractères en italiques, s'il ne se trouve pas dans la même interface ?...)
Dernière modification par micmac le 23 sept. 2024 02:00, modifié 4 fois.
Raison : Ajout de la coche verte
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [writer] rechercher les caractères formatés manuellement

Message par Bidouille »

Bonjour,

Pour être aidé efficacement par les bénévoles et surtout leur faire gagner du temps, veuillez fournir les éléments suivants :
  1. insérer dans le corps du message le code de la macro exposant le problème de cette manière

    Code : Tout sélectionner

    du code bien formaté est plus lisible
  2. joindre un document explicatif intégrant cette macro avec les données de départ (page 1) et le résultat à obtenir (page 2)
  3. fournir un mode pas-à-pas permettant de reproduire ce qui a été fait ou ce que vous cherchez à faire pour arriver au problème
  4. ajouter des copies écran (situation avant / après) car cela permet de mieux comprendre
Merci de publier ces informations à la suite.
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

Re: [Writer] rechercher les caractères formatés manuellement

Message par touvenant »

Et voilà Bidouille !
J'ai mis une majuscule à Writer,
j'ai écrit la procédure manuelle, qui correspond à ce que je souhaite réaliser en macro, en liste "pas à pas",
et j'ai supprimé le bout de code que j'ai trouvé dans l'API qui ne servait à rien ici, car il n'apporte pas de solution à mon problème.
Le reste est sans objet.

C'est épuisant la programmation... à chaque fois, je tombe sur un bidon de couilles !
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] rechercher les caractères formatés manuellement

Message par Dude »

Salut,
touvenant a écrit : 16 sept. 2024 17:10 Quelqu'un saurait-il où se trouve le XSearchDescriptor correpondant dans l'API ?
Ici : https://www.openoffice.org/api/docs/com ... iptor.html
Mais, il faut d'abord créer un descripteur afin de le paramétrer.
As-tu déjà fait une recherche ? Il y a des exemples de code dessus.
touvenant a écrit : 17 sept. 2024 11:13 j'ai écrit la procédure manuelle, qui correspond à ce que je souhaite réaliser en macro, en liste "pas à pas"
C'est bien mais comme l'indique le modo et si tu parcours un tant soit peu ce forum, tu verras qu'il faut joindre un document sur lequel on puisse s'appuyer.
touvenant a écrit : 17 sept. 2024 11:13 J'attends d'avoir tous les outils et le matériel avant de commencer à travailler.
Nous sommes d'accord et c'est pour ça que tu y adjoindras également les copies d'écran demandées.
touvenant a écrit : 17 sept. 2024 11:13 à chaque fois, je tombe sur un bidon de couilles !
Est-il besoin d'être grossier ? :roll:
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

Re: [Writer] rechercher les caractères formatés manuellement

Message par touvenant »

Merci Dude pour ta réponse.
As-tu déjà fait une recherche ?
Oui, et j'ai bien trouvé le xsearchdescriptor, cependant, ce que je n'ai pas trouvé dans la doc de l'API, c'est la méthode du xsearchdescriptor correspondant à la recherche des caractères gras (et des italiques). J'ai continué mes recherches et j'en suis à me demander si une telle méthode existe, dans le xsearchdescriptor ou ailleurs, et s'il ne faudrait pas que je scanne tout le document caractère par caractère en vérifiant s'ils sont formatés en gras...

Concernant l'utilisation, ça semble s'employer comme un objet : on l'instancie, on définit les propriétés que l'on cherche, puis on le passe en argument à une méthode de recherche du document (findfirst() par exemple). Faut-il que la propriété existe...
il faut joindre un document sur lequel on puisse s'appuyer.
Il n'y a aucun document pour le moment. Je suis en phase d'apprentissage pure, pas encore à l'application de cet apprentissage. J'ai néanmoins exprimé ce que je souhaite réaliser pour me faire aiguiller vers les bonnes pages de la doc (c'est peut-être pas dans le xsearchdescriptor qu'il faut que je cherche...)
Est-il besoin d'être grossier ?
Bien sûr que non ! Je modifie ça tout de suite, mais c'est moins drôle...
Edit : ah ben non, ça a déjà été supprimé.
Donc, sans être grossier : c'est usant la programmation, à chaque fois, je tombe sur un sac de nœuds...
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] rechercher les caractères formatés manuellement

Message par Dude »

touvenant a écrit : 17 sept. 2024 17:12 c'est usant la programmation
Tout autant que de voir qu'il n'y a toujours pas le document et les copies écran demandés.
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

Re: [Writer] rechercher les caractères formatés manuellement

Message par touvenant »

Une copie écran... comment dire ?
En voilà une :
Image
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] rechercher les caractères formatés manuellement

Message par Dude »

C'est à toi de voir si tu veux être aidé.
Mais tu penses bien que ce n'est pas à nous de fabriquer le document et de dire ce qu'il faut en faire.

Bon courage.
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

Re: [Writer] rechercher les caractères formatés manuellement

Message par touvenant »

Mais tu penses bien que ce n'est pas à nous de fabriquer le document et de dire ce qu'il faut en faire.
Je n'y pense pas, car ce n'est pas ce que j'attends.
Je pensais avoir clairement formulé ma question :
Quelqu'un saurait-il où se trouve le XSearchDescriptor correpondant dans l'API ? (et le XSearchDescriptor pour les caractères en italiques, s'il ne se trouve pas dans la même interface ?...)
Dans le doute que mon problème ne trouve pas sa réponse dans le XSearchDescriptor, j'ai quand même précisé ce que je souhaite faire, mais ça ne signifie pas que j'attends qu'on le fasse à ma place.
Soit quelqu'un sait où dans la doc API se trouve la méthode (ou l'équivalent) pour rechercher les caractères ayant reçu une mise en forme manuelle, et aura la générosité de partager son savoir (c'est ce que tu as pensé faire en m'envoyant le lien vers la page de l'API du XSearchDescriptor, mais j'avais déjà trouvé cette page et le service searchdescriptor ne propose pas la méthode qui va bien),
soit personne ne sait et je continuerai de chercher...
Donc, l'aide que j'attends n'est pas un document, mais un lien ou bien un nom de méthode complètement qualifié.
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044
Jeff
GourOOu
GourOOu
Messages : 9804
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Writer] rechercher les caractères formatés manuellement

Message par Jeff »

Bonjour,

Peut-être que la technique à utiliser est présente dans l'extension Éradicateur de surcharges

A +
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

Re: [Writer] rechercher les caractères formatés manuellement

Message par touvenant »

Merci Jeff.
Je vais voir si je peux analyser cet éradicateur de surcharge pour voir comment il s'y prend...
D coup, il faut que je voie si c'est possible de lire le code d'une extension comme celui d'une macro...
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044
touvenant
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 23 déc. 2012 18:42

Re: [Writer] rechercher les caractères formatés manuellement

Message par touvenant »

Merci Jeff, ta suggestion m'a été très utile.
Il semble qu'il n'y ait pas de méthode pour faire une recherche de caractères gras (ni italique) qui soit un équivalent du XsearchDescriptor.
En tout cas, l'éradicateur de surcharge procède à une énumération des éléments, avant de vérifier si chacun des éléments est un paragraphe et s'il est formaté directement ou par le styliste.
C'est également à peu près la même façon de procéder qui apparaît dans le guide Basic (https://wiki.openoffice.org/wiki/FR/Doc ... _Documents), chapitre "Valeurs par défaut des propriétés de caractère et de paragraphe" (énumération des éléments, vérification que ce soit un paragraphe puis traitement légèrement différent mais qui revient au même.
Bref, la question est résolue pour moi.
Merci à tous.
LibreOffice 24.8.1.2 x64
Windows10 Pro v10.0.19044