BlackSheep-LSL@Wiki

llCSV2List

最終更新:

mizcremorne

- view
メンバー限定 登録/ログイン

llCSV2List

list llCSV2List(string src)

CSV形式の文字列をリスト型に変換する。
CSVとはComma Separated Valuesの略で、Excel好きな方にはお馴染みのアレである。

つまりカンマ区切りの文字列をリストに変換する関数である。
ただし変換された要素は全て文字列型になることに注意。
 "a","b","c","d" → ["a","b","c","d"]
 1,2,4,8 → ["1","2","4","8"]
 <1,2,3>,<4,5,6>,<7,8,9> → ["<1,2,3>", "<4,5,6>", "<7,8,9>"]
この関数はリンクメッセージなどで複数のデータをやり取りしたい場合に便利である。
リンクメッセージで送れるデータは、整数値、文字列値、キー値の3通り各1つずつだが、時としてベクタ値とローテーション値を送りたい場合もある。
そのようなときにはベクタ値とローテーション値をCSV形式の文字列に変換し、文字列値としてリンクメッセージに乗せる方法がある。

default {
  touch_start(integer num_detected) {
    if (llDetectedKey(0) == llGetOwner()){
      llMessageLinked(LINK_SET, 0,
        llList2CSV([llGetPos(), llGetRot()]), NULL_KEY);
    }
  }

  link_message(integer sender, integer num, string str, key id){
    list v = llCSV2List(str);
    vector p = (vector)llList2String(v, 0);
    rotation r = (rotation)llList2String(v, 1);
    llSay(0, "Pos = " + (string)p + ", Rot = " + (string)r);
  }
}

llCSV2List関数とは逆に、リストをCSV形式の文字列値に変換するにはllList2CSV関数を使う。
記事メニュー
目安箱バナー