Assuming all fields on a card are the target fields to sort and combine
on sortFlds
repeat with k = 1 to the number of fields
put the rect of field k after fieldList
put comma & k after fieldList
put cr after fieldList
end repeat
sort fieldList numeric by item 2 of each -- Y
sort fieldList numeric by item 1 of each -- X
repeat for each line LNN in fieldList
put fld (item 5 of LNN) after tWholeenchilada
put cr after tWholeenchilada
end repeat
put tWholeenchilada into msg box
end sortFlds
-- in the second repeat loop you could use ...
-- put item 5 of LNN into fldNum
-- put fld fldNum after tWholeenchilada
Hope this helps.
On Jan 28, 2011, at 9:17 PM, John Patten wrote:
I have a card with four fields. The field can be dragged around by
the user. I want to get the contents of each field and put them all
in one container.
My attempt is below. I attempted to sort the list of fld locations
but that is susceptible to the y coordinate being above the previous
field and throwing off the sort.
Here is what I tried:
on mouseUp
-- sort item 1 of the field locations
put 1 into x
put 2 into y
put the number of lines in cd fld "data" into tCount
repeat for tCount-1
put item x of line x of cd fld "data" into tFirstTest
put item x of line y of cd fld "data" into tSecondTest
if tFirstTest > tSecondTest then
put line y of cd fld "data" & return after cd fld "sortedData"
delete line y of cd fld "data"
else
put line x of cd fld "data" & return after cd fld "sortedData"
delete line x of cd fld "data"
end if
end repeat
put line 1 of cd fld "data" after cd fld "sortedData"
delete line 1 of cd fld "data"
-- sort item 2 of the fld locations
put 1 into x
put 2 into y
put the number of lines in cd fld "sortedData" into tCount
repeat for tCount-1
put item y of line x of cd fld "sorteddata" into tFirstTest
put item y of line y of cd fld "sorteddata" into tSecondTest
if tFirstTest > tSecondTest then
put line y of cd fld "sorteddata" & return after cd fld "Data"
delete line y of cd fld "sorteddata"
else
put line x of cd fld "sorteddata" & return after cd fld "Data"
delete line x of cd fld "sorteddata"
end if
end repeat
put line 1 of cd fld "sorteddata" after cd fld "Data"
delete line 1 of cd fld "sorteddata"
--put the field contents in the user's order
put the number of lines in cd fld "data" into tCount
put 1 into x
repeat tCount
put item 3 of line x of cd fld "data" into tTargetField
put cd fld tTargetField of group "theFields" & " " after
tWholeenchilada
add 1 to x
end repeat
put tWholeenchilada
end mouseUp
Jim Ault
Las Vegas
_______________________________________________
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