変換へのトリックは、それらの厄介な文字を扱っています。これを行う最も簡単な方法は、16進数値と16進数を同じにする「マップ」構造であることがわかりました。スモールベーシックでは、スモールベーシックの配列は実際にマップとして実装されているので、これをさらに簡単にできます。
私は上記のスニペットに基づいて完全な例を作成しました。このスモール・ベイジアン・インポート・コードを使用して取得することができます。CJK283
以下のサブルーチンは重要なビットです。これは2桁の16進数を10進数に変換します。また、Small Basicでのサブルーチンの制限についても強調しています。パラメータが渡され、値が返される各呼び出しの1行ではなく、Small Basicでは、サブルーチンを呼び出すためにサブルーチン内に変数をジャグリングし、少なくとも3行を必要とします。
'Call to the ConvertToHex Subroutine
hex = Text.GetSubText(color,2,2)
DecimalFromHex()
red = decimal
Convert a Hex string to Decimal
Sub DecimalFromHex
'Set an array as a quick and dirty way of converting a hex value into a decimal value
hexValues = "0=0;1=1;2=2;3=3;4=4;5=5;6=6;7=7;8=8;9=9;A=10;B=11;C=12;D=13;E=14;F=15"
hiNibble = Text.GetSubText(hex,1,1) 'The high order nibble of this byte
loNibble = Text.GetSubText(hex,2,1) 'The low order nibble of this byte
hiVal = hexValues[hiNibble] * 16 'Combine the nibbles into a decimal value
loVal = hexValues[loNibble]
decimal = hiVal + loVal
EndSub