stristr

From Second Life Wiki
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 Stristr( string haystack, string needle, integer after_needle );

Returns part of haystack string from the first occurrence of needle to the end of haystack.
Returns a string containing the text from haystack that comes before or after needle.

• string haystack The input string
• string needle the search within
• integer after_needle If TRUE, Stristr returns the part of the haystack after the first occurrence of the needle, otherwise before first occurrence.

Specification

//Function created by Ugleh Ulrik
string stristr(string haystack, string needle, integer after_needle){
    if(haystack)
    {//we have a haystack, it's not ""
        //Now find us a needle!
        integer pos = llSubStringIndex(haystack, needle);
        if(~pos)
        {//We have found a needle!
            if(after_needle)//return what comes after needle
                return llGetSubString(haystack, pos + llStringLength(needle), -1);
            return llDeleteSubString(haystack, pos, -1);
        }
    }
    return "";
}

Examples

This example uses its basic feature, to provide the content left, or right of the searched string.

default
{
    touch_start(integer total_number)
    {
         string source = "Hello there, Ugleh is my name!";
         string mess = stristr(source,"Ugleh",TRUE); //True means after Needle
         llOwnerSay(mess);//outputs  "  is my name!"
         
         mess = stristr(source,"Ugleh",FALSE); //False means before Needle.
         llOwnerSay(mess);//outputs "Hello there, "
    }
}

See Also

Functions

•  llSubStringIndex Find a string in another string
•  llParseString2List Split a string up into a list
•  llParseStringKeepNulls Like llParseString2List but it keeps empty strings
•  llListFindList Like llSubStringIndex but for lists