Difference between revisions of "User:Ugleh Ulrik/ListKeyCase"
Jump to navigation
Jump to search
Ugleh Ulrik (talk | contribs) (Created page with '{{LSL_Function |func=ListKeyCase |mode=user |p1_type=list|p1_name=src|p1_desc=List to change case |p2_type=integer|p2_name=case|p2_desc=1 is Upper, 0 is Lower. |return_type=list ...') |
m (<lsl> tag to <source>) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
|func_footnote= | |func_footnote= | ||
See also: [[List|Lists]] | See also: [[List|Lists]] | ||
|spec=< | |spec=<source lang="lsl2">//This version converts all list items into strings. | ||
list new; | list ListKeyCase(list src,integer case){ | ||
integer i; | list new; | ||
if (case){ | integer i; | ||
if (case){ | |||
do | |||
new += llToUpper(llList2String(src,i)); | |||
while (llGetListLength(src)>++i); | |||
}else{ | return new; | ||
}/*else*/{ | |||
do | |||
new += llToLower(llList2String(src,i)); | |||
return new; | while (llGetListLength(src)>++i); | ||
return new; | |||
} | |||
}</source> | |||
<source lang="lsl2">//This version preserves the types of all list items. | |||
list ListKeyCase(list src, integer case) { | |||
list new; | |||
integer i = 0; | |||
integer j = llGetListLength(src); | |||
integer type; | |||
if (case) { | |||
do { | |||
if(((type = (llGetListEntryType(src, i) - TYPE_STRING))) & -2) { | |||
new += llList2List(src, i, i); | |||
} else if(type) { | |||
new += (key)llToUpper(llList2String(src,i)); | |||
} else { | |||
new += llToUpper(llList2String(src,i)); | |||
} | |||
} while (j>++i); | |||
return new; | |||
} /*else*/ { | |||
do { | |||
if(((type = (llGetListEntryType(src, i) - TYPE_STRING))) & -2) { | |||
new += llList2List(src, i, i); | |||
} else if(type) { | |||
new += (key)llToLower(llList2String(src,i)); | |||
} else { | |||
new += llToLower(llList2String(src,i)); | |||
} | |||
} while (j>++i); | |||
return new; | |||
} | |||
} | } | ||
</source> | |||
</ | |caveats=*[[Key]] equality (and inequality) testing is case sensitive. | ||
|caveats | |examples=<source lang="lsl2"> | ||
|examples=< | |||
list test = ["Apples","Bananas","Cranberrys","Donuts"]; | list test = ["Apples","Bananas","Cranberrys","Donuts"]; | ||
list newtest = ListKeyCase(test,0); | list newtest = ListKeyCase(test,0); | ||
//newtest now is ["apples","bananas","cranberrys","donuts"]</ | //newtest now is ["apples","bananas","cranberrys","donuts"]</source> | ||
|helpers | |helpers | ||
|notes | |notes | ||
Line 35: | Line 67: | ||
|also_articles | |also_articles | ||
|cat1=Examples | |cat1=Examples | ||
|cat2 | |cat2=User-Defined_Functions | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 | ||
}} | }} |
Latest revision as of 14:45, 22 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: list ListKeyCase( list src, integer case );Returns a list that is a copy of src with all lower-case letters or all upper-case letters.
• list | src | – | List to change case | |
• integer | case | – | 1 is Upper, 0 is Lower. |
See also: Lists
Specification
//This version converts all list items into strings.
list ListKeyCase(list src,integer case){
list new;
integer i;
if (case){
do
new += llToUpper(llList2String(src,i));
while (llGetListLength(src)>++i);
return new;
}/*else*/{
do
new += llToLower(llList2String(src,i));
while (llGetListLength(src)>++i);
return new;
}
}
//This version preserves the types of all list items.
list ListKeyCase(list src, integer case) {
list new;
integer i = 0;
integer j = llGetListLength(src);
integer type;
if (case) {
do {
if(((type = (llGetListEntryType(src, i) - TYPE_STRING))) & -2) {
new += llList2List(src, i, i);
} else if(type) {
new += (key)llToUpper(llList2String(src,i));
} else {
new += llToUpper(llList2String(src,i));
}
} while (j>++i);
return new;
} /*else*/ {
do {
if(((type = (llGetListEntryType(src, i) - TYPE_STRING))) & -2) {
new += llList2List(src, i, i);
} else if(type) {
new += (key)llToLower(llList2String(src,i));
} else {
new += llToLower(llList2String(src,i));
}
} while (j>++i);
return new;
}
}
Caveats
- Key equality (and inequality) testing is case sensitive.
Examples
list test = ["Apples","Bananas","Cranberrys","Donuts"];
list newtest = ListKeyCase(test,0);
//newtest now is ["apples","bananas","cranberrys","donuts"]