Difference between revisions of "User:Cory Fimicoloud"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{User:Cory Fimicoloud/hcard}}
{{User:Cory Fimicoloud/hcard}}
==My Functions==
===Text===
====String====
=====UTF8Len=====
Returns the UTF-8 byte count of the string passed to it.
<lsl>
integer UTF8Len(string fsString)
{
// Author: Cory Fimicoloud
// License: http://creativecommons.org/licenses/by-sa/3.0/us/
integer liLen = ~llStringLength(fsString);
string lsChar = "";
string lsEnc = "";
integer liByteLen = 0;
while (++liLen < 0)
{
lsEnc = llEscapeURL((lsChar = llGetSubString(fsString, liLen, liLen)));
if (lsChar != lsEnc)
liByteLen += llStringLength(lsEnc) / 3;
else
++liByteLen;
}
return liByteLen;
}
default
{
state_entry()
{
// 63 characters. Each of the characters uses 1 byte except for ¢ (2 bytes) and € (3 bytes). Which results in 66 bytes.
string lsString = "Can I have $10 and 7¢, please? I would prefer it in €'s though.";
llOwnerSay("'" + lsString + "' is " + (string)UTF8Len(lsString) + " bytes.");
}
}</lsl>
=====UTF8Split=====
Returns a list containing the string passed to it, split every fiSplit bytes.
<lsl>
list UTF8Split(string fsString, integer fiSplit)
{
// Author: Cory Fimicoloud
// License: http://creativecommons.org/licenses/by-sa/3.0/us/
string lsSplit = "";
list laSplit = [];
integer liLen = ~llStringLength(fsString);
string lsChar = "";
string lsEnc = "";
integer liByteLen = 0;
while (++liLen < 0)
{
lsChar = llGetSubString(fsString, liLen, liLen);
lsEnc = llEscapeURL(lsChar);
if (lsChar != lsEnc)
liByteLen += llStringLength(lsEnc) / 3;
else
++liByteLen;
if (liByteLen <= fiSplit)
lsSplit += lsChar;
else
{
laSplit += [lsSplit];
lsSplit = lsChar;
liByteLen = 1;
}
}
return laSplit + [lsSplit];
}
default
{
state_entry()
{
list laSplit = UTF8Split("Can I have $10 and 7¢, please? I would prefer it in €'s though.", 33);
llOwnerSay("\nUTF8Split\n==========\n\t0: " + llList2String(laSplit, 0) + "\n\t1: " + llList2String(laSplit, 1));
}
}</lsl>
==Miscellaneous==
==Miscellaneous==
===LSL/Mono Differences===
===LSO/MONO Differences===
Results are from 1000 iterations and are in seconds.
{| border="1" cellpadding="3" cellspacing="0"
{| border="1" cellpadding="3" cellspacing="0"
!VM
!VM
!Average
!Average
!Total
!Total
|+State Changing
|+State Changing<br>''1000 iterations, in seconds.''
|-
|LSO
|0.000038
|00.037993
|-
|-
|Mono
|MONO
|0.010054
|0.010054
|10.053950
|10.053950
|}
{| border="1" cellpadding="3" cellspacing="0"
!VM
!Count
!Count + 1 Error
|+Nested If Statements Limit
|-
|LSO
|1474
|Byte code assembly failed -- out of memory
|-
|-
|LSL
|MONO
|0.000038
|2497
|00.037993
|Syntax error
|}
|}


==See Also==
==See Also==
* [[User:Cory_Fimicoloud/SimIPScan|Simulator IP Scan]]
* [[User:Cory_Fimicoloud/SimIPScan|Simulator IP Scan]]
* [[User:Cory_Fimicoloud/LSLFunctions|LSL Functions]]
* {{Jira Reporter}}
* {{Jira Reporter}}



Latest revision as of 12:43, 10 June 2009

Profile
Born:
Sat 12th May 2007

Miscellaneous

LSO/MONO Differences

VM Average Total
State Changing
1000 iterations, in seconds.
LSO 0.000038 00.037993
MONO 0.010054 10.053950
VM Count Count + 1 Error
Nested If Statements Limit
LSO 1474 Byte code assembly failed -- out of memory
MONO 2497 Syntax error

See Also