Donnez vie à vos documents numériques !
 

FindChangeByList

abracadabraPDF Forums Support & assistance FindChangeByList

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46256
    Ronflex
    Membre

    Je tente d’écrire une requête GREP dans le fichier FindChangeByList.txt.
    La requête fonctionne dans le Rechercher et remplacer d’InDesign :  [A-Z]u+  Remplacer par : t$0

    Je suis incapable de la faire fonctionner dans le script. Qu’est-ce que je fais de pas correct ?

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Auteur
    Réponses
  • #67147
    Merlin
    Maître des clés

    Bonjour

    Merci de joindre le fichier texte que je puisse l’examiner, et de m’indiquer quelle est la ligne modifiée.
    :Smiley15:

    #67148
    Ronflex
    Membre

    J,ai une liste  importée dans In Design qui contient notamment des infos comme celles du fichier Listes_genealogiques_Exemples.txt (elle est nettement plus longue que celle-ci entre 4 et 20,000 entrées par fichier.)

    SI je fais un Recherche et Remplacer et que je choisis Recherche GREP, J’écris dans Rechercher : [A-Z]u+  et puis j’écris dans Remplacer :  t$0  Je roule la requête : TOUT REMPLACER  et  un tabulateur apparait entre Rose et DAMOUR ou Pierre et LAROCHE et ainsi de suite ou tout autre nom écrit ainsi.
    Comme j’ai une vingtaine de requêtes différentes  à effectuer sur le fichier, et que je dois effectuer ce travail assez souvent, avant de l’exporter , j’ai pensé les rouler  avec le script FindChangeByList.  Mes premières requêtes fonctionnent bien (elles sont inactives présentement car je testait la dernière)  mais je suis incapable de faire rouler la dernière instruction.
    J’écris (Voir le fichier Find_…txt) : grep  {findWhat:”[A-Z]u+)”}  {changeTo:”t$0“}  {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}
    Ca ne fonctionne pas.
    Est-ce que c’est parce que le script ne s’occupe que de typographie ou parce que j’ai écrit la commande comme un béotien ?

    P.S.
    J’ai découvert un script DoQUeryList,qui est un pis aller. (Pas si pire comme aller, je l’avoue :Smiley01: ). Il me permet d’automatiser beaucoup plus l’exécution de ma séquences de requêtes que la fonction Rechercher et Remplacer d’InDesign.  J’aimerais mieux l’exécuter avec FindChangeByList  mais il y a souvent un monde entre je veux et je peux. Donc, le problème est maintenant pour moi plus théorique puisque je peux fonctionner beaucoup plus vite. Puis-je écrire n’importe quelle commande GREP dan FindChangeByList ?

    Merci à l’avance.
    Ronflex

    #67149
    Merlin
    Maître des clés

    Je vais examiner ça de plus près ce weekend, j’ai bien un soupçon mais dans ce cas ça ne devrait pas marcher non plus en rechercher-remplacer…  :Euuuh:  :doute:

    Quoi qu’il en soit FindChangeByList est pratique pour les corrections-vérifications récurrentes mais ce n’est pas très souple.
    MultiFindChange  ou DoQUeryList me semblent plus adaptés à ton besoin.

    #67150
    Merlin
    Maître des clés

    1. La regex que tu utilises est bancale.
    [A-Z] c’est exactement la même chose que u : lettre capitale quelconque
    Donc [A-Z]u+ signifie : une lettre capitale quelconque, suivie d’une lettre capitale quelconque répétée une ou plusieurs fois.

    Ce qu’on peut aussi écrire : u{2,}
    Soit une lettre capitale quelconque répétée deux ou plusieurs fois (la virgule est importante).

    2. J’ai testé ta regex, j’ai essayé avec une autre sans utiliser le remplacement avec les $ : avec le rechercher-remplacer ça fonctionne.
    Par-contre c’est impressionnant comme rien ne fonctionne avec le script !
    J’en perd mon latin  :doute: :Euuuh: :doute: :Euuuh:
    Et du coup je me demande aussi si les autres lignes fonctionnent…

    Je vais tester avec InDesign CS6 sur mon vieux Mac dès fois que ce serait un bug de InDesign CC2020, mais j’ai surtout l’impression de passer à côté de quelque chose.
    :geek:

    #67151
    Merlin
    Maître des clés

    mais j’ai surtout l’impression de passer à côté de quelque chose.

    Mais bon sang, mais c’est bien sur !  :extra:
    Et je le savais…  :mur:

    Pour les scripts (pas que celui-là), dans la recherche certains métacaractères requièrent un double-slash pour être échappés, donc il faut utiliser : \u
    Ce qui nous donne cette ligne :

    grep {findWhat:”\s(?=\u{3,})“} {changeTo:”t”} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:false, wholeWord:false}

    \s(?=\u{3,}) : cette regex ne capte QUE l’espace située immédiatement avant la suite de lettres capitales recherchées, grâce au LookBehind positif (en rouge*). Et j’ai mis 3 caractères minimum pour éviter de capter d’éventuels articles.
    Donc on ne fait que remplacer l’espace par une TAB.
    OK, au final ça ne change rien, mais sur le principe je préfère.
    :Smiley03:

    * Voir : https://www.abracadabrapdf.net/ressources-et-tutos/abracadabragrep/grep-pour-indesign-appliquer-exposant-a-mme-et-mlle/

    #67152
    Ronflex
    Membre

    Oh grand magicien,

    Je suis ébahi que tu ais pris du temps pour trouver la solution. D,autant plus que j’avais trouvé un plan b. Merci pour l’astuce du : u{2,} ,  cela m’a permis d’éliminer une formule encore plus étriquée qui prévoyait tous les cas dans les noms propres. Ex. St-Amour,  Perrier-Lachapelle,  Aubin/Lacoste. Je n’ai qu’a passer une fois une autre requête pour régler les problèmes comme D’Amours.
    Cette formule t’aurait fait éclater de rire, j’en suis convaincu.

    Je te remercie sincèrement.

    #67153
    Merlin
    Maître des clés

    :bonjour:

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.