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関数を使う。