Hi Chris

(For some reason my messages here occur only several hours after I've sent 
them ...)

Thank you very much indeed – your AppleScript works perfectly well here (8 
seconds when applied to my file of 8,000 lines), the result is the same as 
when I run Christian's script. So I can even choose between the two!

samar
On Sunday, March 21, 2021 at 9:47:34 AM UTC+1 [email protected] wrote:

> On 03/20/2021, at 15:48, John Delacour <[email protected]> wrote:
>
> That makes no sense to me.  If the current col1 is identical to col1 of 
> the previous line, then the value will not be printed; that is the clear 
> logic of the routine.  I cannot reproduce your error.
>
> ------------------------------
>
> Hey Folks,
>
> I'm with JD on this one.  I ran his script on a sample file, and it 
> performed as expected.
>
> Samar – I'd want a zipped copy of your test file that's failing to test. 
>  Also - you said you're working with a *large* file.  How large?  It 
> makes a difference in how one approaches the problem.
>
> I like JD's Perl solution for this.  It's neat, clean, fast, and will 
> handle big files with ease.
>
> If I *was* to use AppleScript I'd go this route:
>
> -----------------------------------------------------------
> # Auth: Christopher Stone <[email protected]>
> # dCre: 2021/03/21 02:56
> # dMod: 2021/03/21 02:56 
> # Appl: BBEdit
> # Task: Massage Text of Columns A and B of a Table.
> # Libs: None
> # Osax: None
> # Tags: @Applescript, @Script, @BBEdit
> -----------------------------------------------------------
>
> *set* colAStr *to* *missing value*
> *set* {oldTIDS, AppleScript's text item delimiters} *to* {AppleScript's text 
> item delimiters, tab}
>
> *tell* *application* "BBEdit" *to* ¬
>     *set* paragraphList *to* contents *of* *lines* *of* *front* *document* 
> *where* *its* contents *is* *not* ""
>
> *repeat* *with* i *in* paragraphList
>     *if* colAStr = *text item* 1 *of* i *then*
>         *set* contents *of* i *to* tab & *text item* 2 *of* i
>     *else*
>         *set* colAStr *to* *text item* 1 *of* i
>     *end* *if*
> *end* *repeat*
>
> *set* AppleScript's text item delimiters *to* linefeed
> *set* paragraphList *to* paragraphList *as* *text*
> *set* AppleScript's text item delimiters *to* oldTIDS
>
> *tell* *application* "BBEdit" *to* ¬
>     *set* *text* *of* *front* *document* *to* paragraphList
>
> -----------------------------------------------------------
>
> Although it could bog down with very big files.
>
>
> --
> 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/f552240a-d802-4227-9311-8d441c01ac61n%40googlegroups.com.

Reply via email to