2010年1月16日土曜日

string→integerっす

LSLのstring型は直接大小比較できないっす。
なので、やるなら自前で用意しないといけないっす。
今回はそんな話っす。
どうもぺんぎんっす( ◎v◎ )


何に使われてる文字列なのかによっても、ちょっと違うっす。
アバターの名前だったら記号が使えなかったり、
アイテムの名前だったら" | "(ASCIIコード0x7c)がダメだったりするっすからね。
そこら辺は工夫してくださいっす。


アイテムの名前について書くっす。
これはコンテンツに突っ込んだときに並ぶ順番っす。
どうもASCIIコード順になってるみたいっすから、これを使うっす。


方法としては単純っす。
1.どこかに「ASCIIコード0x20から0x7eまで(0x7cを除いて)」を
 ずらーっと並べたstringを用意する。
 **これは1文字分をintegerに置き換える準備っす
2.llSubStringIndexで、頭から1文字ずつintegerに置き換えていく。

これだけっす。
1.の準備さえ間違っていなければ、llSubStringIndexは-1を返さないっす。
2.ではビットシフトを使って、4文字分を1つのintegerでもやれるっすね。



あ、マルチバイトの場合(listenで使う)とかは知らないっすよ

0 件のコメント:

コメントを投稿

Free Avatar