SplitLine

De DigiWiki.

Example:

Trivial example to listen to any chat from the object owner for source values and respond lines split at space (" ") positions using 10 characters stride value.

// Insert code of SplitLine user function here
 
default
{
    state_entry()
    {
        llOwnerSay("Enter text");
	llListen(0, "", llGetOwner(), "");
    }
 
    listen(integer _chan, string _str, key _id, string _msg)
    {
        llOwnerSay(_msg + "\nsplit to:\n" + SplitLine(_msg, " ", 10));
    }
}

Specification:

string SplitLine(string _source, string _separator, integer _stride)
{
    integer offset= _stride;
    integer sourceLen = llStringLength(_source);
    integer separatorLen = llStringLength(_separator);
 
    while (sourceLen > _stride)
    {
	integer split = llSubStringIndex(llGetSubString(_source, offset, -1), _separator);
	if (split != -1)
        {
	    _source = llInsertString(_source, offset + split + separatorLen, "\n");
	    sourceLen = llStringLength(_source) - offset;
	    offset += split + _stride + 2;
	}
        else sourceLen = -1;
    }
    return _source;	
}
Outils personnels
  • Cette page a été consultée 475 fois.
donate
Google Ads