Community
    • Login

    How to do multiple search for a list of strings

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    3 Posts 3 Posters 5.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Arhack BifrostA
      Arhack Bifrost
      last edited by

      I have a list of strings and I want to search for each one of them [separately] in all files (*.c or *.h) automaticaly inside a folder for example

      variableNumber1
      variableNumber2
      variableNumber3
      variableNumber4
      

      and results will be something like that (with every file where it is found)

      Search “variableNumber4” (34 hits in 4 files)
      Search “variableNumber3” (6 hits in 5 files)
      Search “variableNumber2” (7 hits in 6 files)
      Search “variableNumber1” (4 hits in 1 files)
      I tried a macros recording the action “search in file” I save it and then went to the code behinde and I found the following

      <Macro name="searchTest" Ctrl="no" Alt="no" Shift="no" Key="0">
                  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                  <Action type="3" message="1601" wParam="0" lParam="0" sParam="variableNumber1" />
                  <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                  <Action type="3" message="1653" wParam="0" lParam="0" sParam="the_path_of_MyFolder" />
                  <Action type="3" message="1652" wParam="0" lParam="0" sParam="*.c*"" />
                  <Action type="3" message="1702" wParam="0" lParam="32" sParam="" />
                  <Action type="3" message="1701" wParam="0" lParam="1656" sParam="" />
              </Macro>
      

      in action number “1601” the sParam is varaibleNumber1 that means each time I run the macro I’m getting all the time resulats for “variableNumber1”

      dinkumoilD 1 Reply Last reply Reply Quote 0
      • dinkumoilD
        dinkumoil @Arhack Bifrost
        last edited by

        @Oussama-Moustakim

        This task needs a scripting solution, i.e. you need to install a scripting plugin like PythonScript, LuaScript or NppExec and write some code.

        Alternatively you could use the console FindStr command as long as your search terms and the files to be searched contain only characters from the 7 bit ASCII code page (character codes up to 127). You can use the following command

        findstr /s /g:"<Path1>\SearchTerms.txt" "<Path2>\*.c" "<Path2>\*.h"
        

        to search recursively (option /s) in all subfolders of Path2 in all *.c and *.h files for the search terms stored (line by line) in file SearchTerms.txt at Path1.

        When you add option /r, you can use the basic regular expression support (see findstr /?) of FindStr to write your search terms.

        When you add option /i, you can search case-insensitive.

        1 Reply Last reply Reply Quote 3
        • guy038G
          guy038
          last edited by

          Hello, @arhack-bifrost, @Dinkumoil and All,

          I was away from the N++ community since more than a month ( see my post below )

          https://community.notepad-plus-plus.org/post/47895

          So, my reply may be out of date !

          However, the macro, below, with 2 almost identical parts, is able to first searches, recursively, for the expression variableNumber1 in all the files of your Folder_Path. Secondly, it searches, in the same way, for the expression variableNumber2 and, finally, shows the 2 successive search operations, in the Find Result panel :-))

                  <Macro name="searchTest" Ctrl="no" Alt="no" Shift="no" Key="0">
          
                      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                      <Action type="3" message="1601" wParam="0" lParam="0" sParam="variableNumber1" />
                      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                      <Action type="3" message="1653" wParam="0" lParam="0" sParam="X:\The_path_of_MyFolder\" />
                      <Action type="3" message="1652" wParam="0" lParam="0" sParam="*.c" />
                      <Action type="3" message="1702" wParam="0" lParam="800" sParam="" />
                      <Action type="3" message="1701" wParam="0" lParam="1656" sParam="" />
           
                      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                      <Action type="3" message="1601" wParam="0" lParam="0" sParam="variableNumber2" />
                      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                      <Action type="3" message="1653" wParam="0" lParam="0" sParam="X:\The_path_of_MyFolder\" />
                      <Action type="3" message="1652" wParam="0" lParam="0" sParam="*.c" />
                      <Action type="3" message="1702" wParam="0" lParam="800" sParam="" />
                      <Action type="3" message="1701" wParam="0" lParam="1656" sParam="" />
          
                  </Macro>
          

          Notes :

          • Of course, you may add as many sections as you want to perform other searches ;-))

          • The parameters value 800 means : 512 ( Direction = Down ) + 256 ( Wrap around ) + 32 = Search in sub-folders


          Two important remarks :

          • Your initial macro, in your post, contains a syntax error. Indeed, the line :
                      <Action type="3" message="1652" wParam="0" lParam="0" sParam="*.c*"" />
          

          should be :

                      <Action type="3" message="1652" wParam="0" lParam="0" sParam="*.c" />
          
          • Secondly, note that, in all caases, the absolute folder path, let’s say "X:\The_path_of_MyFolder\", must, necessarily, ends with a backslash symbol ( \ )

          Cheers,

          guy038

          1 Reply Last reply Reply Quote 2
          • First post
            Last post
          The Community of users of the Notepad++ text editor.
          Powered by NodeBB | Contributors