Dick Kriesel wrote:

On Oct 14, 2014, at 12:45 PM, Richard Gaskin wrote:

on mouseUp
  put 1000 into n
  put "aaa,bbb,ccc#ddd#eee#fff,ggg,hhh" into tSomeData
  --
  put the millisecs into t
  repeat n
     get nDepth(tSomeData, 3, comma, 2, "#" )
  end repeat
  put the millisecs - t into t1
  put t1/n &cr& it
end mouseUp

function nDepth
  get param(1)
  repeat with i = 2 to paramCount() step 2
     set the itemDel to param(i+1)
     get item param(i) of it
  end repeat
  return it
end nDepth

That causes an execution error at line 16 when i = 6, and it tries to set the 
itemDel to empty.

After changing
   repeat with i = 2 to paramCount() step 2
to
   repeat with i = 2 to paramCount()-1 step 2
it works.

Good catch, Dick. Your presence on this list is a good argument for the benefits of peer code review.

Funny thing is I'd first written it with the "-1", but after reviewing it later I couldn't recall why that seemed like a good idea, and since it worked well on the sample exercise without it I thought I was just being overzealous and removed it. Moral: when coffee-deprived, trust your instincts. :)

I'd only tested it on the use-case given in the earlier posts because I couldn't think of one I'd need myself.

For three levels deep I use lines and items, and then change the itemdel to get something within an item.

For four or more levels I just use arrays.

I can see the benefit of having human-readable n-depth serialization, but I have to wonder if maybe using a widely adopted convention like YAML might serve such needs better. JSON's good too, but YAML is so much more writable.

Anyone here have YAMLtoArray/ArrayToYAML handlers?

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com

_______________________________________________
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