Tapatalk

Copy filtered lines to clipboard via macro

Copy filtered lines to clipboard via macro

1
NewbieNewbie
1

PostApr 13, 2018#1

I recently upgraded to the anniversary edition (version 25.00.0.68) and tried out the new "Filter Lines" feature in "Find and Replace." I was able to show only the lines with the text listed in the "find what" field, but I want to copy just those lines into the clipboard to paste into another application. When I try copying just the displayed lines, the entire contents of the file is placed into the clipboard instead. As a workaround, I managed to bookmark each of the resulting filtered lines, copy all bookmarked lines to the clipboard, and paste it into the external application. However, manually bookmarking the lines is not feasible when there is a large number of results. Also since I would ultimately like to put this process into a macro, it poses a challenge as the number of lines needed to bookmark is unknown.

What is the best way to manually copy only the filtered lines resulting from the search to the clipboard, and is there any recommendation on how I might script this process it into a macro?

Thank you in advance for any advice!

BSOD76

Supporting information:

Here is an example of the original file being searched:

Code: Select all

<Redacted Text>
RECORDS PROCESSED:                      14
RECORDS UPDATED:                        14
<Redacted Text>
RECORDS PROCESSED:                      15
RECORDS UPDATED:                        15
<Redacted Text>
# SELECTED 403
NOW PROCESSING...
400 PROCESSED
RECORDS PROCESSED:                     403
RECORDS UPDATED:                       403
<Redacted Text>
NOW PROCESSING...
800 PROCESSED
RECORDS UPDATED:                       879
Desired Results ultimately copied to the clipboard to paste in an external application:

Code: Select all

RECORDS UPDATED:                        14
RECORDS UPDATED:                        15
RECORDS UPDATED:                       403
RECORDS UPDATED:                       879

11427
MasterMaster
11427

PostApr 13, 2018#2

In Find dialog check List lines containing string and press next.

In Find String List invoke context menu (right mouse button click) and choose desired action.

HTH

6,825625
Grand MasterGrand Master
6,825625

PostApr 14, 2018#3

Copying all lines containing a string to clipboard or a new file is a very often asked task and can be done in many different ways.
  1. Use Find with option List lines containing string and copy the found and listed lines to clipboard via context menu command Copy to clipboard or Copy results to new file as posted already by Ovg.
     
  2. Use Find in Files with option In set to Open files and option Results to edit window checked to get the results written into a new file or with this option not checked to write the results in active output window and use context menu item Copy to clipboard. The results output format can be customized at Advanced - Settings or Configuration - Search - Find output format to get just the found lines output with having only Found line checked with $S as format string.
     
  3. One of the scripts from Find strings with a regular expression and output them to new file like FindStringsToNewFile.js can be added to Script list by clicking with using ribbon mode on ribbon tab Advanced in ribbon group Script on item All scripts and then click on down arrow of item Play script to open the popup menu containing FindStringsToNewFile.js to run it on active file with search string RECORDS UPDATED.+ It is also possible to check on ribbon tab Layout in group Views the item Script list and double click on FindStringsToNewFile.js.
     
  4. Another possibility would be using one of the posted macros to copy all lines containing a string to clipboard or a new file like Search string and copy all found lines/strings to clipboard or new file adapted to different search string:

    Code: Select all

    InsertMode
    ColumnModeOff
    HexOff
    Bottom
    IfColNumGt 1
    "
    "
    IfColNumGt 1
    DeleteToStartofLine
    EndIf
    EndIf
    Top
    ClearClipboard
    Loop 0
    UltraEditReOn
    Find MatchCase RegExp "%RECORDS UPDATED:*^p"
    IfFound
    CopyAppend
    Else
    ExitLoop
    EndIf
    EndLoop
    Top
    
  5. It is also possible to use a macro to copy first all lines to a new file, then delete all lines not starting with the string RECORDS UPDATED, copy all remaining lines to clipboard and close the new file without saving it.

    Code: Select all

    InsertMode
    ColumnModeOff
    HexOff
    SelectAll
    Copy
    NewFile
    Paste
    IfColNumGt 1
    InsertLine
    IfColNumGt 1
    DeleteToStartofLine
    EndIf
    EndIf
    Top
    PerlReOn
    Find MatchCase RegExp "^(?!RECORDS UPDATED).*[\r\n]+"
    Replace All ""
    SelectAll
    IfSel
    Copy
    Else
    ClearClipboard
    EndIf
    CloseFile NoSave
    
  6. It is also possible to copy all lines of file with Ctrl+A, Ctrl+C, Ctrl+N, Ctrl+V to a new file, use Find with Filter lines enabled and Show selected, click next on ribbon tab Edit in first group Select and delete on down arrow below item Delete and use from popup menu Delete all hidden lines.
But selecting and copying just displayed lines after using Find with Filter lines enabled and Show selected is not possible. There is no command to select just the lines currently shown.

1002
Power UserPower User
1002

PostApr 19, 2018#4

Good solutions for the task when the user wants to find some string.
But what about the case when we need to copy only the filtered lines shown with code folding collapsed?
Like this example:
code folding.png (57.96KiB)
I want to send to Clipboard only lines 57 and 71, but if I press CTRL-C or menu Edit/Copy, all lines between 57 and 82 are copied.
How to copy only those 2 lines 57 and 71?

Edit 10 minutes later:
Mofi wrote:
  1. It is also possible to copy all lines of file with Ctrl+A, Ctrl+C, Ctrl+N, Ctrl+V to a new file, use Find with Filter lines enabled and Show selected, click next on ribbon tab Edit in first group Select and delete on down arrow below item Delete and use from popup menu Delete all hidden lines.
Sorry, I just saw that recommendation about ribbon tab Edit - Delete all hidden lines. I always use traditional menu and it looks like there are too many features only on ribbon mode thus I'm not aware of them.

It works very well.
But if there are other solutions, without need to modify the current file (deleting lines), I'd love to know/learn.

Edit by Mofi: See Missing commands in toolbar/menu mode with traditional menu regarding to missing features on using traditional menus.