Monday, November 08, 2010 at 12:02 AM.


on openGuestDatabase (f, topLevelName="", flHidden=true) {
		<<1/13/01; 9:21:46 AM by DW
			<<Created. Foolproof way to open a guest database, or create it if it doesn't exist. 
			<<topLevelName is a string, providing the name of the top level item in the database. If it's empty, don't create a top-level item.
			<<If the file is already open, ignore flHidden. If we have to create a new file, pass it down to
			<<Return true if the file is open, false if we were unable to open or create it.
		<<1/13/01; 5:55:05 PM by DW
			<<When opening a file respect the flHidden param.
	file.sureFilePath (f);
	if file.exists (f) {
		if window.isOpen (f) {
			return (true)};
		try { (f, flHidden);
			return (true)}}; (f, hidden:flHidden);
	window.setPosition (f, 30, 40);
	window.setSize (f, 350, 400);
	if topLevelName != "" {
		new (tabletype, @[f].[topLevelName]);
		try {delete (@[f].["item #1"])};
		local (oldtarget = target.set (@[f]));
		wp.settextmode (false);
		target.set (oldtarget)}; (f);
	return (true)}
<<bundle //test code
	<<openGuestDatabase ("c:\\program files\\radio userland\\backups\\test.root", "testStuff", false)

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.