Code:
%value = $gettok($readini(filename,section,item),token#,44)


What you listed (with the commas) is an example of tokens.. With the code I listed here, it would work like this:
Code:
[#roomname]
user!*@*=level,lastaccessed,remotekick,remoteban

if I use the code I showed you, with token# being 2, it would return to me when they last accessed the room, for example. (token#1 = level, etc)

Using hashes...
This can be tricky, because you get to have a table name, and then an item name. So what you have to do is get inventive and create your own form of item array...
Code:
alias userdata {
  var %item = $+($1,:,$2), %data = $3-
  if ($isid) { return $hget(tablename,%item) }
  hadd -m tablename %item %data
}

then to set a value: userdata #roomname user!*@* level,lastaccessed,remotekick,remoteban
to retrieve the values: %value = $userdata(#roomname,user!*@*)
from there, you can use $gettok to get the specific value from %value that you want.

Only thing is that hash tables are not automatically loaded/saved, so when you start mirc, you'd have to load, and anytime you make a change, you'd have to save the table before you quit mirc. That's not hard to do though. /help /hsave and reading that section will tell you how to save/load.

I'm using a similar idea (with hash tables) for a new kicker that I am designing. It's fast and many scripts use them for speed. (This speed becomes noticable when you have over 100,000 items - some scripts get that big)
cool