LlCSV2List/ja

From Second Life Wiki
< LlCSV2List
Revision as of 07:34, 10 April 2010 by Mako Nozaki (talk | contribs) (カテゴリ変更)
Jump to navigation Jump to search

要約

関数: list llCSV2List( string src );

この関数は、各要素がカンマで区切られた文字列を受け取り、list 変数へ変換します。
カンマ区切り形式の文字列 src を切り分けたリストを list で返します。

• string src

リストをカンマ区切り形式へ変換する場合は llList2CSV を使ってください。
この関数が扱うのは、厳密な意味での "Wikipedia logo"CSV 形式ではありません

仕様

Vector 値と Rotation 値

"<" と ">" の間にある内容は全て、カンマの有無に関わらず、一個の値とみなされます

すなわち vector 値や rotation 値は、一個の string 値として扱われ、それ以上の型変換は行なわれません。

"<" には常に対応する ">" が必要というのは注意すべき点で、これが無いと残りの文字列を一続きのものとして解釈してしまいます。例えば、

•  llCSV2List("<>,>,a") の戻り値は ["<>", ">", "a"] (二番目の ">" が孤立しています)
•  llCSV2List("<<>,>,a") の戻り値は ["<<>,>", "a"] (どの括弧もペアになっています)
•  llCSV2List("<<<>,>,a") の戻り値は ["<<<>,>,a"] (三番目の "<" には対応する閉じ括弧がありません)

Whitespace

llCSV2List は全要素から先頭と末尾のスペースを自動的に取り除きます

<lsl>list tmp = llCSV2List("first , second , third"); // ["first","second","third"] が返ります。 // ["first "," second "," third"] ではありません。</lsl>

警告

  • "<" に対応する ">" が無い場合、たとえ途中に "<" がまたあったとしても、文字列の残りの部分は一つの値と見なされます。詳細はVector値とRotation値の項を参照してください。
  • 戻り値の全ての要素は string 型です。
  • 全ての要素について、先頭と末尾のスペースは削除されます。
  • 空文字列を切り分けた場合、戻り値は空のリストでなく、空文字列が入ったリスト [""] になります。
All Issues ~ Search JIRA for related Bugs

サンプル

<lsl>default {

   state_entry()
   {
       string csv = "first,second,third";
       list my_list = llCSV2List(csv);
       llOwnerSay("CSV: " + csv);
       integer i;
       for (i=0; i<llGetListLength(my_list); ++i)
       {
           llOwnerSay("my_list[" + (string)i + "]: " + llList2String(my_list,i));
       }
   }
}</lsl>

注意点

カンマ以外の区切り文字を使う場合、例えばユーザの自由入力 (それ自体カンマを含んでいる) を扱うのでカンマが区切り記号として適切でないといった場合などは、代わりに llParseString2List を使うことでカンマ以外の区切り記号を指定できます。ただし llParseString2List は rotation 型や vector 型の処理に必要な、括弧対応を踏まえた切り分けは行なわず、各要素の前後にあるスペースの削除も行ないません。

関連項目

関数

•  llList2CSV
•  llDumpList2String
•  llParseString2List
•  llParseStringKeepNulls

記事

•  Typecast

特記事項

Search JIRA for related Issues

Signature

function list llCSV2List( string src );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。