> On Sep 20, 2022, at 10:46, Lionel <[email protected]> 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 "[email protected]" 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/bbedit/7DC96F7E-5C88-443D-BBCF-4A9D36EE8DE6%40gmail.com.