Difference between revisions of "LlStringTrim"

From Second Life Wiki
Jump to navigation Jump to search
(Undo revision 30041 by Revolution Perenti That example is better for notecard reading then how to use llStringTrim, it's overkill)
m (stupid unsortable)
Line 14: Line 14:
{{{!}} class="sortable" {{Prettytable}}
{{{!}} class="sortable" {{Prettytable}}
{{!}}-{{Hl2}}
{{!}}-{{Hl2}}
!{{!}}Constant
! {{!}} Constant
! title="Value" {{!}}
! title="Value" {{!}}
! Description
! class="unsortable"{{!}} Description
{{!}}-
{{!}}-
{{!}}{{LSL Const|STRING_TRIM_HEAD|integer|1|hex=0x1|c=Trims spaces off the beginning.}}
{{!}}{{LSL Const|STRING_TRIM_HEAD|integer|1|hex=0x1|c=Trims spaces off the beginning.}}

Revision as of 11:16, 1 September 2007

Summary

Function: string llStringTrim( string src, integer type );

Returns a string that is src with leading and/or trailing white space (spaces, tabs, and line feeds) trimmed from it.

• string src
• integer type STRING_TRIM* flag(s)

Constant Description
STRING_TRIM_HEAD 0x1 Trims spaces off the beginning.
STRING_TRIM_TAIL 0x2 Trims spaces off the end.
STRING_TRIM 0x3 Trims spaces off the beginning and end.

Examples

Returns the number of leading and trailing spaces on a string (not particularly useful but shows how to use the function).

default
{
    state_entry()
    {
        llListen(4, "", llGetOwner(), "");
    }
    on_rez(integer a)
    {
        llResetScript();
    }
    listen(integer chan, string name, key id, string msg)
    {
        //test for and remove wrapping single or double quotes
        if(~llSubStringIndex("'\"", llGetSubString(msg,0,0)))
            if(llGetSubString(msg,-1,-1) == llGetSubString(msg,0,0))
                msg = llDeleteSubString(msg, -1, 0);
        
        //track the length
        integer length = llStringLength(msg);
        
        //trim msg (not necessary to store these to variables but makes reading easier)
        string trim_left = llStringTrim(src, STRING_TRIM_HEAD);
        string trim_right = llStringTrim(src, STRING_TRIM_HEAD);
        string trim = llStringTrim(src, STRING_TRIM);

        //output the results
        llOwnerSay("Initial length = " + (string)length;
                 "\nLeading Spaces = " + (string)(length - llStringLength(trim_left))+
                 "\nTrailing Spaces = " + (string)(length - llStringLength(trim_right))+
                 "\nTrimmed Message = \"" + trim + "\"");
    }
}

Notes

The following examples will make the same result.

string src = "   Duh    ";
st = llStringTrim(src, STRING_TRIM_HEAD);
st = llStringTrim(st , STRING_TRIM_TAIL);
string src = "   Duh    ";
st = llStringTrim(src, STRING_TRIM);

This is because (STRING_TRIM_HEAD | STRING_TRIM_TAIL) == STRING_TRIM.

Deep Notes

Search JIRA for related Issues

Signature

function string llStringTrim( string src, integer type );