Advertisement
Guest User

listSupport.cs

a guest
Mar 9th, 2015
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.52 KB | None | 0 0
  1. // List Functions
  2.  
  3. function ListCollapse(%list) {
  4.     %fieldCount = getFieldCount(%list);
  5.     for(%i = 0; %i < %fieldCount; %i++) {
  6.         %field = getField(%list, %i);
  7.         if(%fieldRegistered[%field]++ == 1)
  8.             %newList = %newList TAB %field;
  9.     }
  10.     return trim(%newList);
  11. }
  12.  
  13. function ListCombine(%list1, %list2) {
  14.     return ListClean(%list1 TAB %list2);
  15. }
  16.  
  17. function ListExclude(%list1, %list2) {
  18.     %list1Size = getFieldCount(%list1);
  19.     %list2Size = getFieldCount(%list2);
  20.     for(%i = 0; %i < %list1Size; %i++) {
  21.         %field = getField(%list, %i);
  22.         %fieldRegistered[%field]++;
  23.     }
  24.     for(%i = 0; %i < %list1Size; %i++) {
  25.         %field = getField(%list, %i);
  26.         if(%fieldRegistered[%field])
  27.             %list1 = strReplace(%list1, %field, "");
  28.     }
  29.     return ListClean(%list1);
  30. }
  31.  
  32. function ListZip(%list1, %list2) {
  33.     %xFieldCount = getFieldCount(%list1);
  34.     %yFieldCount = getFieldCount(%list2);
  35.     %fieldCount = %xFieldCount;
  36.     if(%xFieldCount > %yFieldCount) {
  37.         %inter = %list1;
  38.         %list1 = %list2;
  39.         %list2 = %inter;
  40.         %fieldCount = %yFieldCount;
  41.         %yFieldCount = %xFieldCount;
  42.         %xFieldCount = %fieldCount;
  43.     }
  44.     for(%i = 0; %i < %fieldCount; %i++) {
  45.         %retList = %retList TAB getField(%list1, %i) TAB getField(%list2, %i);
  46.     }
  47.     if(%yFieldCount > %xFieldCount)
  48.         %retList = %retList TAB getFields(%list2, %yFieldCount - %xFieldCount);
  49.     return trim(%retList);
  50. }
  51.  
  52. function ListClean(%list) {
  53.     return trim(strReplace(%list, "\t\t", "\t"));
  54. }
  55.  
  56. function ListAppend(%list, %element) {
  57.     if(%list $= "")
  58.         return %element;
  59.     return %list TAB %element;
  60. }
  61.  
  62. function ListIterate(%list, %function, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8) {
  63.     %fieldCount = getFieldCount(%list);
  64.     for(%i = 0; %i < %fieldCount; %i++) {
  65.         for(%j = 1; %j < 9; %j++)
  66.             %argList = %argList @ (%arg[%j] !$= "" ? ",\"" @ %arg[%j] @ "\"" : "");
  67.         %ret = %ret TAB (%eRes = eval(%evalStr = (%function @ "(" @ getField(%list, %i) @ %argList @ ");")));
  68.         %arglist = "";
  69.     }
  70.     if(%ret $= "")
  71.         return "";
  72.     return getSubStr(%ret, 1, strLen(%ret)-1);
  73. }
  74.  
  75. function ListTokenizeZipped(%list, %recycle) {
  76.     %obj = isObject(%recycle) ? %recycle : new ScriptObject();
  77.     %obj.elemCnt = 0;
  78.     %fieldCount = getFieldCount(%list);
  79.     if(%fieldCount % 2 == 1) {
  80.         error("[ListSupport] Attempted to Tokenize Zipped List with Odd # of Elements");
  81.         return %obj;
  82.     }
  83.     for(%i = 0; %i < %fieldCount; %i += 2) {
  84.         %fieldName = getField(%list, %i);
  85.         %fieldValue = getField(%list, %i+1);
  86.         %obj.elemName[%i/2] = %fieldName;
  87.         %obj.elemVal[%i/2] = %fieldValue;
  88.         %obj.elemCnt++;
  89.     }
  90.     return %obj;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement