13 Replies Latest reply: Nov 23, 2014 1:16 AM by camilo umana RSS

    Find/Change By List help

    creusche Community Member

      Hi all,

       

      New to scripts here using InDesign CS6.

       

      I need some help on how to set up the find/change by list script in InDesign. I searched the forums but I don't quite grasp if I need my list saved as a .txt file or something else and where to save the list.

       

      I have a list of about 50 words (text only) (and growing) I'd like to simply find these words in my document, but not change them to anything as I need to rewrite the content to fit.

       

      I'm hoping there is a find next of some sort with this script so I can search the entire set of terms in one shot. (I played with the Multi/Find change script (http://automatication.com/) but it looks like that requires me to "change all" rather than find all)

       

      When I run the script in indesign it asks me to select a file to pull from. I currently have my list of text setup in a .txt file. (But not knowing code, I'm wondering if I need to save this text file differently or code it so the find/changebylist script can pull from this file)

       

      Could someone point me in the right direction, or let me know if this is the correct script to use and how to use it?

       

      I noticed in my script panel the find/change support folder (C:\Program Files (x86)\Adobe\Adobe InDesign CS6\Scripts\ mentioned on this site is missing from my folder.)
      http://colecandoo.wordpress.com/2011/08/25/make-findchange-behave-more-like-a-word-macro/

       

      Thanks for your help. Hopefully I get the hang of this soon.

        • 1. Re: Find/Change By List help
          Jump_Over Community Member

          Hi,

           

          You can go straight or try to modify 'MultiFind' script.

           

          I suggest to use a text conditions and go straight with this code:

          var 
                    mDoc = app.activeDocument,
                    mCond = mDoc.conditions.item("mFound"),
                    mPath = "~/Documents/ID_words_to_find.txt",
                    mDelimiter = ",",
                    mSource = File(mPath),
                    mOpen = mSource.open("r",undefined,undefined),
                    len, len1, mWordsArr, mFound;
          
          if (!mCond.isValid)
                    mCond = mDoc.conditions.add({
                              name: "mFound",
                              indicatorColor: UIColors.LIGHT_BLUE,
                              indicatorMethod: ConditionIndicatorMethod.USE_HIGHLIGHT,
                              underlineIndicatorAppearance: ConditionUnderlineIndicatorAppearance.SOLID
                              });
          
          if ( !mOpen) {alert ("Can't open a source file"; exit()};
          
          mWordsArr = mSource.read().split(mDelimiter);
          len = mWordsArr.length;
          
          app.findTextPreferences = null;
          while (len-->0) {
                    app.findTextPreferences.findWhat = mWordsArr[len];
                    mFound = mDoc.findText();
                    len1 = mFound.length;
                    while (len1-->0)
                              mFound[len1].appliedConditions = [mCond];
                    }
          app.findTextPreferences = null;
          

           

          How it works (should)?

          Assumed:

          - a list of words to find is in a .txt file as comma-delimited (you could set other delimiter)

          - this file is named 'ID_words_to_find'  and saved in user Documents folder (you can change mPath)

           

          Script define a condition 'mFound' and apply it to every word from your list found in a document. They are highlighted. You can modify them.

          Notice: to remove a condition (highlight) modify a word including a space before it.

           

          Enjoy:)

           

          Jarek

          • 2. Re: Find/Change By List help
            Salah Fadlabi Community Member

            Also check:

            A Major Job Gets Easier with GREP and FindChangeByList

            http://indesignsecrets.com/a-major-job-gets-easier-with-grep-and-findchangebylist.php

            • 4. Re: Find/Change By List help
              creusche Community Member

              Thanks Jarek,

               

              I'm still unable to get it to work, but am wondering if it is because the .txt fil I wish to pull from is from a shared location on our network? Once I get the script to work I'd like to share it with other members of the team. So would where I save my .txt file affect the script.

                 

              mPath = "~/Documents/ID_words_to_find.txt",

               

              The file I'd like to pull from is on our shared drive:

               

              M:/Resources/Scripts and GREP Queries/ID_words_to_find.txt

               

              Thanks!

              • 5. Re: Find/Change By List help
                Jump_Over Community Member

                Hi,

                 

                run this 1-liner in ESTK and watch console window. It will ask you for selecting a folder and its path will write in console. Just copy it and add a file name at the end.

                 

                mFolder = Folder.selectDialog();
                

                 

                Jarek

                • 6. Re: Find/Change By List help
                  camilo umana Community Member

                  Jarek,

                   

                  I was trying to use this script but it gives me an error 25 on line 18:

                  if ( !mOpen) {alert ("Can't open a source file"; exit()};

                   

                  May be this used as a single script?

                  • 7. Re: Find/Change By List help
                    Jump_Over Community Member

                    Hi,

                     

                    It was a typo:

                     

                    if ( !mOpen) {alert ("Can't open a source file"); exit()};
                    

                     

                    sor

                     

                    Jarek

                    • 8. Re: Find/Change By List help
                      camilo umana Community Member

                      Screen Shot 2014-03-30 at 05.15.04.jpg

                       

                      Yes, it now runs but the output is found 0.

                       

                      How to detect what is the problem?

                       

                      If I delete the .txt file the script warns it.

                      It means the two requisites are accomplished.

                       

                      Can you kindly make a remark?

                       

                      Thank you.

                      • 9. Re: Find/Change By List help
                        Jump_Over Community Member

                        Hi,

                         

                        Exam your ID_words_to_find.txt contents. Should be comma delimited.

                        Try to find manually one of its content. I mean if your .txt contents is:

                         

                        somethingToFind1,somethingToFind2,somethingToFind3

                         

                        try to find in UI one of them. Is the result empty?

                         

                        Jarek

                        • 10. Re: Find/Change By List help
                          camilo umana Community Member

                          It is a beautiful script!

                          Thanks a lot.

                          (comma delimited the culprit...)

                           

                          jarek.jpg

                          • 11. Re: Find/Change By List help
                            camilo umana Community Member

                            Dear Jarek,

                             

                            Trying to use this script you wrote I founded that some single words in the list (ai, for example), that are sometimes part of a whole word (aimara), get highlighted.

                            Do you think it is a something that could be revised? Also, accented letters get unseen (anamú). Thanks for your time.

                            Untitled-14.jpg?

                            • 12. Re: Re: Find/Change By List help
                              [Jongware] Community Member

                              To change the Find Text options to "Whole Word", add after the first occurrence of this line


                              app.findTextPreferences = null;

                               

                              (the one directly above Jarek's loop) this line

                               

                              app.findChangeTextOptions.wholeWord = true;
                              

                               

                              About the accented characters: are they accented as well in your text file? This should work exactly as it does in the interface: "Find text" without accents will find text without the accents.

                               

                              GREP is able to find 'any' kind of accent for common characters with this notation:

                               

                              anam[[==u==]]
                              

                               

                              but that requires a re-write of the script.

                              • 13. Re: Re: Find/Change By List help
                                camilo umana Community Member

                                @Jong

                                Thanks a lot (as always) for this fix.

                                (It was very  that some phonemes were at the same time words in this language and the sample got contaminated..)

                                The script is now working perfectly.

                                Accented letters... also!: Theory and you were right.

                                Have a nice day.

                                6.jpg

                                @Jarek

                                Thanks again for this script.

                                Is a must in some jobs.