Beware this will get the (possibly) wrong result for some data. For
instance, a comma will terminate a word, so
a,b def
will give you a key of "aTABb def"
rather than a key of "a,TABdef"
I'd stick to the safer
set the itemDel to space
repeat for each line L in tData
put item 1 of L & TAB & item 2 to -1 of L & CR after tOutput
end repeat
or ... since they are key/value pairs, if (AND ONLY IF) you happen to
know that the keys are unique
split tData by CR and space
combine tData by CR and TAB
-- Alex.
On 25/05/2011 16:14, Keith Clarke 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..
On 25 May 2011, at 12:04, Jim Ault wrote:
On May 25, 2011, at 3:11 AM, Keith Clarke wrote:
A simple requirement but I'm struggling with getting the structure and syntax
needed to replace only the first space character in each line of a variable
with a tab.
I have a field of label-value pairs - and some of the values contain spaces.
This creates problems if I attempt a blanket approach of 'replace space in
tVariable' with tab.
So, I tried iterating through each tLine of tVariable but get a runtime error
with 'replace space 1 in line tline with tab'. So, I'm guessing that 'space'
can't be used to set chunk expression scope.
So, within each line, I'm iterating at character-level, with 'repeat for each
character tChar in the line, if tChar is space then...
I've tried 'replace tChar with tab' and 'add tab after tChar' and then 'delete
tChar' but I get errors - probably because I'm trying to delete the reference
variable(?)
I'm sure there is a nice efficient way to do this, so any advice on structure,
syntax or command usage would be greatly appreciated.
There are a few approaches (working code below)
repeat for each line LNN in labelValueList
put word 1& tab& word 2 to -1 of LNN& cr after newList
end repeat
filter newList without tab --optional for tab-only lines
filter newList without empty --optional for 0 char lines
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode