LlCSV2List

From Second Life Wiki

(Redirected from LSL llCSV2List)
Jump to: navigation, search

Contents

Description

Function: list llCSV2List( string src );
196 Function ID
0.0 Delay
10.0 Energy

Returns a list made from src as comma separated values.

• string src


Do not confuse this function with the CSV format, it is not the CSV format.

Specification

This function takes a string of values separated by commas, and turns it into an LSL list.

To do the opposite -- take a list and make it into a comma-separated string -- use llList2CSV.

To use separators other than commas (especially if you can't predict when a user might have snuck a comma into data they supply the script), use llParseString2List instead, which allows you to specify separators other than commas.


Rotation and Vector Strings

Anything between "<" and ">" is considered a single value regardless of the existence of a comma between.

This ensures that vectors and rotations get treated as a single value, with no additional cleanup needed afterward.

Note, though, that for every "<" there needs to be a corresponding ">" :

 
llCSV2List("<>,>,a")   == ["<>", ">", "a"]; //didn't match the last ">"
llCSV2List("<<>,>,a")  == ["<<>,>", "a"];   //matched everything
llCSV2List("<<<>,>,a") == ["<<<>,>,a"];     //didn't match the last "<"
 

Note as well that Rotations and Vectors included in this list will be strings. You'll need to convert them back to Rotations or Vectors for other use when you haul them out of the list.


Leading and Trailing Spaces

llCSV2List eats leading and trailing spaces from values.

For example:

list tmp = llCSV2List("first , second , third");

returns ["first","second","third"]

not ["first "," second "," third"]


Blank Lists

  • llCSV2List("") returns [""], not []

Caveats

  • As mentioned above under the "Rotation and Vector Strings" section, all items in the returned list (including integers, floats, etc, as well) are strings until typecast (converted) otherwise by you.

Examples

 
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));
        }
    }
}

See Also

Functions

•  llList2CSV
•  llDumpList2String
•  llParseString2List
•  llParseStringKeepNulls

Articles

•  Typecast
Personal tools