llStringTrim

From Second Life Wiki
Revision as of 10:33, 1 September 2007 by Revolution Perenti (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 0x01 Trims spaces off the beginning.
STRING_TRIM_TAIL 0x02 Trims spaces off the end
STRING_TRIM 0x03 Trims spaces off the beginning and end.

Examples

integer channel;                        // will be set by notecard
string NOTECARD_NAME = "configuration";  // name of notecard goes here

key KQuery;                   // to seperate Dataserver requests

// UPDATES
integer line;

default
{
    changed(integer change)         
    {
        // We want to reload channel notecard if it changed
        if (change & CHANGED_INVENTORY)
        {
        llResetScript();
        }
         
    }
    state_entry()
    {
        KQuery = llGetNotecardLine(NOTECARD_NAME, line);// request line
        line++ ;
    }
    
    dataserver(key query_id, string data) {
        if (query_id == KQuery) {
            if (data != EOF) {    // not at the end of the notecard
                // yay!  Parsing time
                // first, is it a comment? or an empty line?
                if (llGetSubString (data, 0, 0) != "#" && llStringLength (data) > 0)
                {
                    list parsed = llParseString2List (data, ["="], [""]) ;
                    string token = llToLower (llStringTrim (llList2String (parsed, 0), STRING_TRIM)) ;
                    if (token == "command_channel")
                        channel = (integer)llStringTrim (llList2String (parsed, 1), STRING_TRIM) ;
                }

                KQuery = llGetNotecardLine(NOTECARD_NAME, line);
                line++;
            } else {
                llOwnerSay ("Done Reading Notecard: " + (string)NOTECARD_NAME) ;
state configuration ;
            }
        }
    }  

}

state configuration
{
 
            state_entry()
            {
            llListen(channel, "", "", "");
            llShout(0, "Channel set to " + (string)channel);
            }   
}
Submitted by Revolution Perenti

Notes

This function is available in 1.13.4 onwards...

The following examples will make the same result.

string src = "   Dah    ";
st = llStringTrim(src, STRING_TRIM_HEAD);
st = llStringTrim(st , STRING_TRIM_TAIL);
string src = "   Dah    ";
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 );