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

Reply via email to