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


on loadImageFile (f, adrtable, name=nil) {
	<<load a file of any type as a cell in the indicated table
		<<It can be a GIF, JPEG, Shockwave movie, whatever type you like.
		<<It's loaded into user.html.images. You can move it anywhere you like.
		<<The gifRef macro will understand if the 1st param is an address.
		<<12/30/98 Added name as an optional parameter for custom naming
	<<local (name = file.fileFromPath (f))
	if name == nil {
		name = file.fileFromPath (f);
		name = string.popSuffix (name)};
	if name contains " " { //only convert to innercase if there are spaces
		name = string.innerCaseName (name)};
	if not defined (adrtable^) {
		new (tabletype, adrtable)};
	local (type = file.type (f));
	local (flTextFile);
	bundle { //cross-platform way of determining if it's a text file
		case sys.os () {
			"MacOS" {
				flTextFile = type == 'TEXT'}}
		else {
			flTextFile = {"html", "htm", "txt"} contains string.lower (type)}};
	if flTextFile {
		wp.newTextObject (file.readWholeFile (f), @adrtable^.[name])}
	else {
		adrtable^.[name] = file.readWholeFile (f);
		setBinaryType (@adrtable^.[name], type)};
	return (@adrtable^.[name])};
bundle { <<test code
	loadimagefile ("D:\\Program Files\\OPML\\harrySmaller.gif", @workspace)}

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.