Difference between revisions of "LlStringTrim"

From Second Life Wiki
Jump to: navigation, 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 );