Difference between revisions of "ListStridedRemove"

From Second Life Wiki
Jump to navigation Jump to search
m (style)
(replaced the function with one that works.)
Line 10: Line 10:
|func_desc=Removes a specified part of a strided list.  
|func_desc=Removes a specified part of a strided list.  
|func_footnote=
|func_footnote=
<lsl>list ListStridedRemove(list src, integer start, integer end, integer stride) {
<lsl>
     return llDeleteSubList(src, start * stride, (stride * (end + 1)) - 1);
list ListStridedRemove(list src, integer start, integer end, integer stride)
}</lsl>
{
     // fixed and improved by Madpeter Zond (the wiki entry is trash please update it)
    integer loop = start - 1;
    integer tricker = 0;
    integer maxlen = llGetListLength(src);
    if((end == 0) || (end > maxlen)) end = maxlen;
    while(loop < end)
    {
        integer pointid = loop-tricker;
        src = llDeleteSubList(src,pointid,pointid);
        tricker++;
        loop+=stride;   
    }
    return src;
}
</lsl>


See also: [[List#Strided_lists|Strided Lists]]
See also: [[List#Strided_lists|Strided Lists]]

Revision as of 08:01, 16 December 2009

Summary

Function: list ListStridedRemove( list src, integer start, integer end, integer stride );

Removes a specified part of a strided list.
Returns a list that contains the elements of myList but with the strides in the range of start to end removed.

• list src
• integer start
• integer end
• integer stride

<lsl> list ListStridedRemove(list src, integer start, integer end, integer stride) {

   // fixed and improved by Madpeter Zond (the wiki entry is trash please update it)
   integer loop = start - 1;
   integer tricker = 0;
   integer maxlen = llGetListLength(src);
   if((end == 0)

Examples

<lsl>list customers = ListStridedRemove(customers, 0, 0, STRIDELENGTH);</lsl>