Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // List Functions
- function ListCollapse(%list) {
- %fieldCount = getFieldCount(%list);
- for(%i = 0; %i < %fieldCount; %i++) {
- %field = getField(%list, %i);
- if(%fieldRegistered[%field]++ == 1)
- %newList = %newList TAB %field;
- }
- return trim(%newList);
- }
- function ListCombine(%list1, %list2) {
- return ListClean(%list1 TAB %list2);
- }
- function ListExclude(%list1, %list2) {
- %list1Size = getFieldCount(%list1);
- %list2Size = getFieldCount(%list2);
- for(%i = 0; %i < %list1Size; %i++) {
- %field = getField(%list, %i);
- %fieldRegistered[%field]++;
- }
- for(%i = 0; %i < %list1Size; %i++) {
- %field = getField(%list, %i);
- if(%fieldRegistered[%field])
- %list1 = strReplace(%list1, %field, "");
- }
- return ListClean(%list1);
- }
- function ListZip(%list1, %list2) {
- %xFieldCount = getFieldCount(%list1);
- %yFieldCount = getFieldCount(%list2);
- %fieldCount = %xFieldCount;
- if(%xFieldCount > %yFieldCount) {
- %inter = %list1;
- %list1 = %list2;
- %list2 = %inter;
- %fieldCount = %yFieldCount;
- %yFieldCount = %xFieldCount;
- %xFieldCount = %fieldCount;
- }
- for(%i = 0; %i < %fieldCount; %i++) {
- %retList = %retList TAB getField(%list1, %i) TAB getField(%list2, %i);
- }
- if(%yFieldCount > %xFieldCount)
- %retList = %retList TAB getFields(%list2, %yFieldCount - %xFieldCount);
- return trim(%retList);
- }
- function ListClean(%list) {
- return trim(strReplace(%list, "\t\t", "\t"));
- }
- function ListAppend(%list, %element) {
- if(%list $= "")
- return %element;
- return %list TAB %element;
- }
- function ListIterate(%list, %function, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8) {
- %fieldCount = getFieldCount(%list);
- for(%i = 0; %i < %fieldCount; %i++) {
- for(%j = 1; %j < 9; %j++)
- %argList = %argList @ (%arg[%j] !$= "" ? ",\"" @ %arg[%j] @ "\"" : "");
- %ret = %ret TAB (%eRes = eval(%evalStr = (%function @ "(" @ getField(%list, %i) @ %argList @ ");")));
- %arglist = "";
- }
- if(%ret $= "")
- return "";
- return getSubStr(%ret, 1, strLen(%ret)-1);
- }
- function ListTokenizeZipped(%list, %recycle) {
- %obj = isObject(%recycle) ? %recycle : new ScriptObject();
- %obj.elemCnt = 0;
- %fieldCount = getFieldCount(%list);
- if(%fieldCount % 2 == 1) {
- error("[ListSupport] Attempted to Tokenize Zipped List with Odd # of Elements");
- return %obj;
- }
- for(%i = 0; %i < %fieldCount; %i += 2) {
- %fieldName = getField(%list, %i);
- %fieldValue = getField(%list, %i+1);
- %obj.elemName[%i/2] = %fieldName;
- %obj.elemVal[%i/2] = %fieldValue;
- %obj.elemCnt++;
- }
- return %obj;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement