Difference between revisions of "LlList2String"

From Second Life Wiki
Jump to navigation Jump to search
(add note to explain when integer cast of llList2String and hex undo one another (i.e., gracefully do nothing in combination))
m (changed pre tags into lsl tags.)
Line 8: Line 8:
|caveats
|caveats
|constants
|constants
|examples=<pre>//This code demonstrates the differences in typecasting in LSL (and demonstrates how to use the llList2* functions).
|examples=<lsl>//This code demonstrates the differences in typecasting in LSL (and demonstrates how to use the llList2* functions).
// Best viewed in Chat History (ctrl-h)
// Best viewed in Chat History (ctrl-h)
default
default
Line 27: Line 27:
         }
         }
     }
     }
}</pre>
}</lsl>
|helpers
|helpers
|also_functions={{LSL DefineRow||{{LSLG|llGetListEntryType}}|}}
|also_functions={{LSL DefineRow||{{LSLG|llGetListEntryType}}|}}

Revision as of 07:28, 21 February 2008

Summary

Function: string llList2String( list src, integer index );

Returns a string that is at index in src.

• list src
• integer index

index supports negative indexes. If the type of the entry at index in src is not a string it is typecast into a string.
If index is out of range it returns a null string.

Specification

Index Positive Negative
First 0 -length
Last length - 1 -1

Indexes

  • Positive indexes count from the beginning, the first item being indexed as 0, the last as (length - 1).
  • Negative indexes count from the far end, the first item being indexed as -length, the last as -1.

Caveats

  • If index is out of bounds the script continues to execute without an error message.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>//This code demonstrates the differences in typecasting in LSL (and demonstrates how to use the llList2* functions). // Best viewed in Chat History (ctrl-h) default {

   state_entry()
   {
       list my_list = ["a", "0xFF", "0xFF.FF", "1.0e3", 1, 2.0, <1,2,3>, <1,2,3,4>, llGetOwner()];
       integer i = 0;
       integer end = llGetListLength(my_list);
       for (; i<end; ++i)
       {
           llOwnerSay("string=" + llList2String(my_list,i)
                       + "\n   integer=" + (string)llList2Integer(my_list,i) + " OR " +(string)((integer)llList2String(my_list,i))
                       + "\n   float=" + (string)llList2Float(my_list,i) + " OR " +(string)((float)llList2String(my_list,i))
                       + "\n   vector=" + (string)llList2Vector(my_list,i) + " OR " +(string)((vector)llList2String(my_list,i))
                       + "\n   rot=" + (string)llList2Rot(my_list,i) + " OR " +(string)((rotation)llList2String(my_list,i))
                       + "\n   key=" + (string)llList2Key(my_list,i) + " OR " +(string)((key)llList2String(my_list,i)) );
       }
   }
}</lsl>

Notes

To convert a string of hex nybbles to integer, call llList2String and then type cast that string result to integer.

To convert that integer back to a string of hex nybbles, call hex.

See Also

Functions

•  llGetListEntryType
•  llList2Float
•  llList2Integer
•  llList2Key

Articles

•  Negative Index

Deep Notes

Search JIRA for related Issues

Signature

function string llList2String( list src, integer index );