Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.table.tableContains
on tableContains (adrtable, adrItem) { <<Changes <<6/30/10; 2:16:44 PM by DW <<Added test code in a bundle at the bottom of the script. <<5/18/98 PBS <<Use parentOf instead of string manipulation. <<More reliable, will work with guest databases. <<Old code: <<if string.lower (adrtable) beginsWith "root." <<adrtable = string.mid (adrtable, 6, infinity) <<if string.lower (adritem) beginsWith "root." <<adrtable = string.mid (adritem, 6, infinity) <<return (string.lower (adritem) beginsWith string.lower (adrtable)) <<4/6/98 PBS <<Compare with string.lower. <<2/12/98 at 3:14:52 PM by PBS <<Sometimes the addresses begin with "root.", sometimes not. <<Take that into account. <<10/31/97 at 1:25:00 PM by DW <<moved from toys.tableContains <<return true if adritem points to something contained within the table local (nomad = adritem); adrtable = address (adrtable); if typeof (nomad^) != tabletype { nomad = parentof (nomad^)}; loop { if nomad == adrtable { return (true)}; nomad = parentof (nomad^); if nomad == nil { return (false)}}} <<bundle //test code <<dialog.alert (tableContains (@system.temp.scripting2.editor.posts, @system.temp.scripting2.editor.posts.["http://scripting.com/stories/2010/06/29/scripting2ChangeNotes.opml"].outline)) <<dialog.alert (tableContains (@system.temp.scripting2.editor.posts, @scratchpad))
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.