How to replace just the first found space with tab for all lines in a variable?
Nonsanity
form at nonsanity.com
Wed May 25 11:48:29 EDT 2011
One thing to keep in mind with that version: Lines that have data, but no
whitespace - lines with just a single word - will get a tab stuck on the
end, which may or may not be what you want in that case. If you don't want a
tab just before the return in such lines, you can add this after the repeat:
if space is not in tLine then put tLine & return after tResultTable
else put word 1 of...
And if this is a one-shot utility function, than any of these solutions that
work for you are great. But if you will be doing this as a feature of a
program, and the amounts of data you'll be pushing through are large, then
modifying the data in-place saves time and memory over copying large
quantities of text between two variables. Just sayin'. :)
~ Chris Innanen
~ Nonsanity
On Wed, May 25, 2011 at 11:14 AM, Keith Clarke <
keith.clarke at clarkeandclarke.co.uk> wrote:
> Thanks to Roger, Ken and Chris for playing - but Jim gets the prize for the
> simplicity brought through passing data out to a second variable, line by
> line, rather than trying to fix the data in place (which is an interesting
> mental challenge but quite convoluted).
>
> So, I settled on this four line fix variant on Jim's first solution (I
> found that had to declare the line explicitly for each word chunk)
>
> repeat for each line tLine in tSourceList
> put word 1 of tLine & tab & word 2 to -1 of tLine & return after
> tResultTable
> end repeat
> filter tResultTable without empty
>
> So, I now have a nice, clean label-value table field.
>
> Nice that variables are 10 a penny in LiveCode! :-)
> Best,
> Keith..
>
More information about the use-livecode
mailing list