Difference between revisions of "String Compare"

From Second Life Wiki
Jump to navigation Jump to search
m (It's just an example, not really a script)
Line 1: Line 1:
{{LSL Header}}
{{LSL Header}}
 
=== String compare ===
Created by [[User:Xaviar Czervik|Xaviar Czervik]]. Do whatever you wish with this function: Sell it (good luck), use it, or modify it.
Created by [[User:Xaviar Czervik|Xaviar Czervik]]. Do whatever you wish with this function: Sell it (good luck), use it, or modify it.


Line 27: Line 27:




[[Category:LSL Library]]
[[Category:LSL Examples]]
[[Category:LSL Examples]]

Revision as of 07:59, 7 September 2007

String compare

Created by Xaviar Czervik. Do whatever you wish with this function: Sell it (good luck), use it, or modify it.

The following code returns 1, -1 or 0. The 1 and -1 are essentially random, however it will return the same value every time the script is executed. 0 Is returned when, and only when, the strings are exactly equal. Completely re-designed to use a few tricks I learned in the past months. Also much easier to read now.

I have used this script for comparing the Keys of two objects in a dynamic set of sensors, to decide which one should be the "Master" in the region to tell me information. I'm sure there can be more uses to this...


integer compare(string s1, string s2) {
    if (s1 == s2) {
        return 0;
    } else if (llStringLength(s1) < llStringLength(s2)) {
        return 1;
    } else if (llStringLength(s1) > llStringLength(s2)) {
        return -1;
    } else {
        list l = [s1, s2];
        l = llListSort(l, 0, 1);
        if (s1 == llList2String(l, 0))
            return 1;
        return -1;
    }
}