You will have to show us exactly what you are storing in $hget( CharSheet, Skills) as well as in $hget( CharSheet, HistorySpecs) and $hget( CharSheet, CultureSpecs), etc. It would also be of great help to see exactly what you want in your listbox(es) with no extra formatting (such as quotes or braces) that you do not want shown. If you want History to show up in the listbox, we need to know that. The same holds true for what you actually store in your data. Please present it like this:

[CharSheet]
item=value
Skills=Culture:1.History:2.Primitive Weaponry:2.World Knowledge:2
HistorySpecs=.Andorian:3
CultureSpecs=.Andorian:3

ListBoxID:13
"Culture"
"History"
"Primitive Weaponry"
"World Knowledge"

Without knowing exactly how you've chosen to store/display your data, we'll end up guessing at what you need, so specific examples of "working" code won't work for you.

When you have data that has spaces either in the sub-item name (such as Primitive Weaponry), you can separate each skill using the . as you have done above. As a general rule, though, it's frequently best to use a different character, one that is highly unlikely to ever be used in such a name. A period might conceivably be used inside a name, such as if you happen to store an address or IP inside one of your records. I like to use $chr(149) or $chr(158) for this, since when I echo it out to a window or an editbox (in FixedSys9), I get a rather large black box that quite easily visually separates my data so I can "see" the different records, or subsections, and don't have to worry about not using normal characters, or even abnormal ones. For the following examples, you would use the $gettok() specified to get through each of the items:

[$gettok($hget(CharSheet,Skills),N,133)] Skills=Culture:1History:2Primative Weaponry:2Word Knowledge:2
[$gettok($hget(CharSheet,Skills),N,149)] Skills=Culture:1History:2Primative Weaponry:2Word Knowledge:2
[$gettok($hget(CharSheet,Skills),N,151)] Skills=Culture:1History:2Primative Weaponry:2Word Knowledge:2

What you end up using will ultimately depend on which font you use in your windows and in your mIRC editor. I prefer $chr(158) usually since I frequently use the single character $chr(255) to represent $crlf; and I use FixedSys9 everywhere.

You can copy/paste the following string of printable characters into a window, delete the characters you will EVER use, and then see which one gives you a visually distinct separator. Then copy that one character into and editbox and use $asc(•) on it to see what the character separator number is for use in $gettok(). If you find that all of these characters can possibly be used in either a subitem name or value, then you can venture into the non-printable ASCII characters, such as $chr(2) bold. Just be careful which $chr()'s you choose as separators if they're not visible or you can end up with unusual results.

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ


DALnet: #HelpDesk and #m[color:#FF0000]IR[color:#EEEE00]C