Statistics: Posted by Fléau — 30 Apr 2013, 15:50



Statistics: Posted by Fléau — 30 Apr 2013, 11:11
Statistics: Posted by percuson — 27 Apr 2013, 12:24
Statistics: Posted by Fléau — 27 Apr 2013, 10:14
Statistics: Posted by percuson — 26 Apr 2013, 18:32
Statistics: Posted by Fléau — 26 Apr 2013, 17:30
Statistics: Posted by percuson — 26 Apr 2013, 17:21
Statistics: Posted by Fléau — 26 Apr 2013, 16:23
Statistics: Posted by percuson — 26 Apr 2013, 15:33
CODE:
(************************************************************************************** Gets a comma separated list and outputs ARR_SIZE text fields. The selected list items (or rather their numbers) are stored in an array which is saved by the Preset Manager and the Conductor. bSork, March 2009***************************************************************************************)CONST ARR_SIZE = 4; // Also update the ARR_SIZE constant module if this is changed.CONST MAX_NUM = 1024; // This is the max number of elements in the list. Increase this // when needed, or - with a shorter list - reduce the size to save // some CPU cycles.VAR pUpd : Tparameter;VAR pList : Tparameter;VAR pNumArr : Tparameter;VAR pNum : Tparameter;VAR pOut : ARRAY OF Tparameter;VAR i, j, len, num : INTEGER;VAR s, c, d, t : STRING;VAR list : ARRAY OF STRING;VAR withinQuotes, quote: BOOLEAN;PROCEDURE init;BEGIN pUpd := CreateParam('update', ptButton); SetIsOutPut(pUpd, FALSE); pList := CreateParam('sep list in', ptTextField); SetIsOutput(pList, FALSE); pNumArr := CreateParam('selected elements', ptArray); SetIsOutput(pNumArr, FALSE); pNum := CreateParam('num elements', ptDataField); SetIsInput(pNum, FALSE); SetMin(pNum, 0); SetMax(pNum, 100); SetFormat(pNum, '%0.f'); SetArrayLength(pOut, ARR_SIZE); FOR i := 0 TO (ARR_SIZE -1) DO BEGIN pOut[i] := CreateParam('text out ' + IntToStr(i + 1), ptTextField); SetIsInput(pOut[i], FALSE); END; SetArrayLength(list, MAX_NUM);END;// mainBEGIN IF (GetValue(pUpd) <> 0) THEN BEGIN withinQuotes := FALSE; quote := FALSE; num := 0; t := ''; s := GetStringValue(pList); len := Length(s); //writeln(s); FOR i := 1 TO len DO BEGIN c := Copy(s, i, 1); IF (i < len) THEN BEGIN d := Copy(s, i + 1, 1); END ELSE BEGIN d := 'TheEndIsNigh!!!!'; END; IF ((c = '"') AND (d = '"')) THEN BEGIN quote := TRUE; t := t + c; END ELSE IF ((c = '"') AND quote) THEN BEGIN quote := FALSE; END ELSE IF (c = '"') THEN BEGIN withinQuotes := NOT (withinQuotes); END ELSE BEGIN IF ((c = ',') AND NOT withinQuotes) THEN BEGIN list[num] := t; num := num + 1; t := ''; END ELSE BEGIN t := t + c; END; END; END; IF (Length(t) > 0) THEN BEGIN list[num] := t; num := num + 1; END; FOR i := num TO (MAX_NUM - 1) DO BEGIN list[i] := ''; END; FOR i := 0 TO (ARR_SIZE - 1) DO BEGIN j := trunc(GetDataArrayValue(pNumArr, i)); t := list[j]; SetStringValue(pOut[i], t); END; SetValue(pUpd, 0); SetValue(pNum, num); END;END.Statistics: Posted by Fléau — 26 Apr 2013, 13:10
Statistics: Posted by Fléau — 26 Apr 2013, 10:58
Statistics: Posted by Fléau — 30 Apr 2013, 15:50



Statistics: Posted by Fléau — 30 Apr 2013, 11:11
Statistics: Posted by percuson — 27 Apr 2013, 12:24
Statistics: Posted by Fléau — 27 Apr 2013, 10:14
Statistics: Posted by percuson — 26 Apr 2013, 18:32
Statistics: Posted by Fléau — 26 Apr 2013, 17:30
Statistics: Posted by percuson — 26 Apr 2013, 17:21
Statistics: Posted by Fléau — 26 Apr 2013, 16:23
Statistics: Posted by percuson — 26 Apr 2013, 15:33
CODE:
(************************************************************************************** Gets a comma separated list and outputs ARR_SIZE text fields. The selected list items (or rather their numbers) are stored in an array which is saved by the Preset Manager and the Conductor. bSork, March 2009***************************************************************************************)CONST ARR_SIZE = 4; // Also update the ARR_SIZE constant module if this is changed.CONST MAX_NUM = 1024; // This is the max number of elements in the list. Increase this // when needed, or - with a shorter list - reduce the size to save // some CPU cycles.VAR pUpd : Tparameter;VAR pList : Tparameter;VAR pNumArr : Tparameter;VAR pNum : Tparameter;VAR pOut : ARRAY OF Tparameter;VAR i, j, len, num : INTEGER;VAR s, c, d, t : STRING;VAR list : ARRAY OF STRING;VAR withinQuotes, quote: BOOLEAN;PROCEDURE init;BEGIN pUpd := CreateParam('update', ptButton); SetIsOutPut(pUpd, FALSE); pList := CreateParam('sep list in', ptTextField); SetIsOutput(pList, FALSE); pNumArr := CreateParam('selected elements', ptArray); SetIsOutput(pNumArr, FALSE); pNum := CreateParam('num elements', ptDataField); SetIsInput(pNum, FALSE); SetMin(pNum, 0); SetMax(pNum, 100); SetFormat(pNum, '%0.f'); SetArrayLength(pOut, ARR_SIZE); FOR i := 0 TO (ARR_SIZE -1) DO BEGIN pOut[i] := CreateParam('text out ' + IntToStr(i + 1), ptTextField); SetIsInput(pOut[i], FALSE); END; SetArrayLength(list, MAX_NUM);END;// mainBEGIN IF (GetValue(pUpd) <> 0) THEN BEGIN withinQuotes := FALSE; quote := FALSE; num := 0; t := ''; s := GetStringValue(pList); len := Length(s); //writeln(s); FOR i := 1 TO len DO BEGIN c := Copy(s, i, 1); IF (i < len) THEN BEGIN d := Copy(s, i + 1, 1); END ELSE BEGIN d := 'TheEndIsNigh!!!!'; END; IF ((c = '"') AND (d = '"')) THEN BEGIN quote := TRUE; t := t + c; END ELSE IF ((c = '"') AND quote) THEN BEGIN quote := FALSE; END ELSE IF (c = '"') THEN BEGIN withinQuotes := NOT (withinQuotes); END ELSE BEGIN IF ((c = ',') AND NOT withinQuotes) THEN BEGIN list[num] := t; num := num + 1; t := ''; END ELSE BEGIN t := t + c; END; END; END; IF (Length(t) > 0) THEN BEGIN list[num] := t; num := num + 1; END; FOR i := num TO (MAX_NUM - 1) DO BEGIN list[i] := ''; END; FOR i := 0 TO (ARR_SIZE - 1) DO BEGIN j := trunc(GetDataArrayValue(pNumArr, i)); t := list[j]; SetStringValue(pOut[i], t); END; SetValue(pUpd, 0); SetValue(pNum, num); END;END.Statistics: Posted by Fléau — 26 Apr 2013, 13:10
Statistics: Posted by Fléau — 26 Apr 2013, 10:58