llCSV2List
list llCSV2List(string src)
CSV形式の文字列をリスト型に変換する。
CSVとはComma Separated Valuesの略で、Excel好きな方にはお馴染みのアレである。
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形式の文字列に変換し、文字列値としてリンクメッセージに乗せる方法がある。
リンクメッセージで送れるデータは、整数値、文字列値、キー値の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関数を使う。