$ cat getdb.icn
# KEHOME/test/getdb.icn
# Mar/9/2003

link xcode

procedure main(arg)
#==================
# getdb dbfile

dbfile := arg[1]
write("dbfile = <",dbfile,">")

#dbtable := table()
if dbf := open(dbfile,"d") then {
        write("open dbfile: success")
        if dbtable := xdecode(dbf) then {
                write("xdecode dbfile: success")
        } else {
                write("xdecode dbfile: FAILED")
        }
        if close(dbf) then {
                write("close dbfile: success")
        } else {
                write("close dbfile: FAILED")
        }
        write("dbtable[Ralph] = ",dbtable["Ralph"])
} else {
        write("open dbfile: FAILED")
}
end

$ cat putdb.icn
# KEHOME/test/putdb.icn
# Mar/9/2003

link xcode

procedure main(arg)
#==================
# putdb dbfile

dbfile := arg[1]
write("dbfile = <",dbfile,">")

dbtable := table()
dbtable["Ralph"] := "800-USE-ICON"
dbtable["Ray"] := "800-4UN-ICON"

if dbf := open(dbfile,"w") then {
        write("open dbfile: success")
} else {
        write("open dbfile: FAILED")
}
if xencode(dbtable,dbf) then {
        write("xencode dbfile: success")
} else {
        write("xencode dbfile: FAILED")
}
if close(dbf) then {
        write("close dbfile: success")
} else {
        write("close dbfile: FAILED")
}

end

$ ./putdb junk
dbfile = <junk>
open dbfile: success
xencode dbfile: success
close dbfile: success
$ ls -l junk*
-rwx------+ 1 Dick McCullough  keuser  57 Mar  9 15:42 junk
$ ./getdb junk
dbfile = <junk>
open dbfile: success
xdecode dbfile: FAILED
close dbfile: success

Run-time error 114
File getdb.icn; Line 26
invalid type to subscript operation
offending value: &null
Traceback:
   main(list_1 = ["junk"])
   {(variable = &null)["Ralph"]} from line 26 in getdb.icn
$ ls -l junk*
-rwx------+ 1 Dick McCullough  keuser    57 Mar  9 15:42 junk
-rwx------+ 1 Dick McCullough  keuser    94 Mar  9 15:42 junk.dir
-rwx------+ 1 Dick McCullough  keuser  3072 Mar  9 15:42 junk.pag
$
