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.
