Difference between revisions of "LlDumpList2String"

From Second Life Wiki
Jump to navigation Jump to search
m (Quick note that when typecasting list as string, each list item is converted to a string value (so floats/vectors/etc might "gain" unexpected digits of precision))
 
(7 intermediate revisions by 4 users not shown)
Line 2: Line 2:
|func_id=245|func_sleep=0.0|func_energy=10.0
|func_id=245|func_sleep=0.0|func_energy=10.0
|func=llDumpList2String|return_type=string|p1_type=list|p1_name=src|p2_type=string|p2_name=separator
|func=llDumpList2String|return_type=string|p1_type=list|p1_name=src|p2_type=string|p2_name=separator
|func_footnote
|func_footnote=Use [[llParseString2List]] or [[llParseStringKeepNulls]] to undo the process.
 
Unlike [[llList2CSV]], which dumps a list to a comma-separated formatted string with no choice over the {{LSLPT|separator}}, llDumpList2String gives you more control. This can be useful if you don't trust commas as a {{LSLPT|separator}} because you might be working with data supplied to the script by a user who uses, say, commas as part of a street address.
|func_desc
|func_desc
|return_text=that is the list '''src''' converted to a string with '''separator''' between the entries.
|return_text=that is the list {{LSLPT|src}} converted to a string with {{LSLPT|separator}} between the entries.
|spec=Unlike [[llList2CSV]] , which dumps a list to a comma-separated formatted string with no choice over the separator, llDumpList2String gives you more control. This can be useful if you don't trust commas as a separator because you might be working with data supplied to the script by a user who uses, say, commas as part of a street address.
|spec
|notes
|caveats
|caveats
|constants
|constants
|examples=
|examples=
<source lang="lsl2">list mylist = ["a", "b", "c", "d"];
string tmp = llDumpList2String(mylist, "**");
//tmp now equals: "a**b**c**d"</source>


<source lang="lsl2">list mylist = [<10,5,7>, 100, "c", "d"];
string tmp = llDumpList2String(mylist, "**");
//tmp now equals: "<10,5,7>**100**c**d"</source>


list mylist = ["a", "b", "c", "d"];<br />
<source lang="lsl2">default{
string tmp = llDumpList2String(mylist, " ** ");<br />
//tmp now equals: "a**b**c**d"<br />
 
list mylist = [<10,5,7>, 100, "c", "d"];<br />
string tmp = llDumpList2String(mylist, "**");<br />
//tmp now equals: "<10,5,7>**100**c**d"<br />
 
<lsl>
default{
     state_entry(){
     state_entry(){
         list my_list = [1, 2.0, "a string", llGetOwner()];
         list my_list = [1, 2.0, "a string", llGetOwner()];
         llOwnerSay("<" + llDumpList2String(my_list,"><") + ">");         
         llOwnerSay("<" + llDumpList2String(my_list,"><") + ">");  
//says: "<1><2.000000><a string><a822ff2b-ff02-461d-b45d-dcd10a2de0c2>"        
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_functions=*{{LSLG|llParseString2List}}
|also_functions=*{{LSLG|llParseString2List}}
Line 35: Line 35:
|also_tests
|also_tests
|also_articles=*{{LSLG|Typecast}}
|also_articles=*{{LSLG|Typecast}}
|notes=Use {{LSLG|llParseString2List}} or {{LSLG|llParseStringKeepNulls}} to undo the process.
|notes=Instead of using <code>llDumpList2String(myList, "")</code> you may wish to consider using the more efficient <code>(string)myList</code> as it produces an identical result with less memory usage due to eliminating a function-call. Each element of the list is converted to string format in the result, so floats expand to six digits of precision, rotations and vectors are represented with "<" and ">" characters, etc.
|permission
|permission
|negative_index
|negative_index

Latest revision as of 15:49, 5 July 2017

Summary

Function: string llDumpList2String( list src, string separator );
0.0 Forced Delay
10.0 Energy

Returns a string that is the list src converted to a string with separator between the entries.

• list src
• string separator

Use llParseString2List or llParseStringKeepNulls to undo the process.

Unlike llList2CSV, which dumps a list to a comma-separated formatted string with no choice over the separator, llDumpList2String gives you more control. This can be useful if you don't trust commas as a separator because you might be working with data supplied to the script by a user who uses, say, commas as part of a street address.

Examples

list mylist = ["a", "b", "c", "d"];
string tmp = llDumpList2String(mylist, "**");
//tmp now equals: "a**b**c**d"
list mylist = [<10,5,7>, 100, "c", "d"];
string tmp = llDumpList2String(mylist, "**");
//tmp now equals: "<10,5,7>**100**c**d"
default{
    state_entry(){
        list my_list = [1, 2.0, "a string", llGetOwner()];
        llOwnerSay("<" + llDumpList2String(my_list,"><") + ">"); 
//says: "<1><2.000000><a string><a822ff2b-ff02-461d-b45d-dcd10a2de0c2>"        
    }
}

Notes

Instead of using llDumpList2String(myList, "") you may wish to consider using the more efficient (string)myList as it produces an identical result with less memory usage due to eliminating a function-call. Each element of the list is converted to string format in the result, so floats expand to six digits of precision, rotations and vectors are represented with "<" and ">" characters, etc.

Deep Notes

Signature

function string llDumpList2String( list src, string separator );