> On Sep 20, 2022, at 10:46, Lionel <att...@free.fr> wrote:
> 
> A call to the AppleScript library of BBEdit sometimes returns the number of 
> hits found, this is the case with replace.
> 
> process lines containing text 1 of text document 1 matching string "^'" 
> output options {deleting matched lines:true} with matching with grep
> 
> But with "process lines containing text" for example, this is not the case 
> and it is better to avoid testing the returned value. It must be somewhere 
> but not in the global property « result ». If someone has a solution, I'm 
> interested.


Hey Lionel,

BBEdit's process lines containing command does not return the number of 
processed lines - period.

You have to look at the actual output of the command.  When you do you find it 
returns a record containing two items:

modified text
copied lines

Modified text is what the text in your document is transformed into by the 
command, and copied lines is the lines that are deleted.

What's more – copied lines is always punctuated with a linefeed – even when the 
last line deleted doesn't have one.

So – you have to do something like this:

--------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2022/09/21 10:00
# dMod: 2022/09/21 10:00 
# Appl: BBEdit
# Task: Return the Number of Processed Lines.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @BBEdit, @Processed, @Lines, @Processed_Lines
--------------------------------------------------------

tell application "BBEdit"
        tell front text window's text
                set processLinesResultRecord to process lines containing 
matching string "^[ts]" output options {deleting matched lines:true} with 
matching with grep
        end tell
        
        set numberOfProcessedLines to copied lines of processLinesResultRecord
        
        if numberOfProcessedLines ≠ "" then
                # Remove the extraneous linefeed at the end of 'copied lines'.
                set numberOfProcessedLines to replace "\\s\\z" using "" 
searchingString numberOfProcessedLines options {search mode:grep}
                # Count the number of paragraphs to determine the number of 
processed lines.
                set numberOfProcessedLines to length of (get paragraphs of 
numberOfProcessedLines)
        end if
        
end tell

--------------------------------------------------------

You could simply subtract 1 from the number of paragraphs instead of munging 
the string as I have.

I'm using BBEdit 14.1.2 on macOS 10.14.6 for this test.  I doubt the newest 
version has changed much in this regard but can't be certain.

--
Best Regards,
Chris

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "supp...@barebones.com" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to bbedit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/7DC96F7E-5C88-443D-BBCF-4A9D36EE8DE6%40gmail.com.

Reply via email to