| 
 | 1 | +# Примеры использования SysEnumerators  | 
 | 2 | + | 
 | 3 | +## 1. [Пробежать по интервалу чисел от 2 до 9 с шагом 3](Job_SysEnumeratorExample01_Int.xpp)  | 
 | 4 | + | 
 | 5 | +  | 
 | 6 | + | 
 | 7 | +```java  | 
 | 8 | +SysEnumerator se = SysEnumerator::newFromToInt(2, 9, 3);  | 
 | 9 | + | 
 | 10 | +while( se.moveNext() )  | 
 | 11 | +{  | 
 | 12 | +    info(strfmt("%1", se.current()));  | 
 | 13 | +}  | 
 | 14 | +```  | 
 | 15 | + | 
 | 16 | +## 2. [Пробежать по интервалу дат с шагом 5 дней](Job_SysEnumeratorExample02_Date.xpp)  | 
 | 17 | + | 
 | 18 | +  | 
 | 19 | + | 
 | 20 | +```java  | 
 | 21 | +SysEnumerator se = SysEnumerator::newFromToDate(01\04\2018, 30\04\2018, 5);  | 
 | 22 | + | 
 | 23 | +while( se.moveNext() )  | 
 | 24 | +{  | 
 | 25 | +    info(strfmt("%1, %2", se.current(), dayofwk(se.current())));  | 
 | 26 | +}  | 
 | 27 | +```  | 
 | 28 | + | 
 | 29 | +## 3. [Пробежать по элементам контейнера](Job_SysEnumeratorExample03_Container.xpp)  | 
 | 30 | + | 
 | 31 | +  | 
 | 32 | + | 
 | 33 | +```java  | 
 | 34 | +container c = ['a', 'b', 1, 'd', systemdateget(), 'f'];  | 
 | 35 | +SysEnumerator se = SysEnumerator::newFromContainer(c);  | 
 | 36 | + | 
 | 37 | +while( se.moveNext() )  | 
 | 38 | +{  | 
 | 39 | +    info(strfmt("%1", se.current()));  | 
 | 40 | +}  | 
 | 41 | +```  | 
 | 42 | + | 
 | 43 | +## 4. [Пробежать по перечислению enum](Job_SysEnumeratorExample04_Enum.xpp)  | 
 | 44 | + | 
 | 45 | +  | 
 | 46 | + | 
 | 47 | +```java  | 
 | 48 | +LedgerTransType transType;  | 
 | 49 | +SysEnumerator se = SysEnumerator::newFromEnum(transType);  | 
 | 50 | + | 
 | 51 | +while( se.moveNext() )  | 
 | 52 | +{  | 
 | 53 | +    info(strfmt("%1 %2 %3 %4", se.current(), se.currentIdx(), se.currentKey(), se.currentValue()));  | 
 | 54 | +}  | 
 | 55 | +```  | 
 | 56 | + | 
 | 57 | +## 5. [Пробежать по полям таблицы](Job_SysEnumeratorExample05_Fields.xpp)  | 
 | 58 | + | 
 | 59 | +  | 
 | 60 | + | 
 | 61 | +```java  | 
 | 62 | +LedgerTransType transType;  | 
 | 63 | +SysEnumerator se = SysEnumerator::newFromEnum(transType);  | 
 | 64 | + | 
 | 65 | +while( se.moveNext() )  | 
 | 66 | +{  | 
 | 67 | +    info(strfmt("%1 %2 %3 %4", se.current(), se.currentIdx(), se.currentKey(), se.currentValue()));  | 
 | 68 | +}  | 
 | 69 | +```  | 
 | 70 | + | 
 | 71 | +## 6. [Пробежать по CSV-файлу](Job_SysEnumeratorExample06_File.xpp)  | 
 | 72 | + | 
 | 73 | +  | 
 | 74 | + | 
 | 75 | +```java  | 
 | 76 | +FileName myDocumentsFolder = WinAPI::getFolderPath(#CSIDL_Personal);  | 
 | 77 | +Filename fileName = myDocumentsFolder + @'\test.csv';  | 
 | 78 | +CommaIo commaIo = new CommaIo(fileName, 'R');  | 
 | 79 | +SysEnumerator_CommaIo se = SysEnumerator_CommaIo::construct(commaIo);  | 
 | 80 | + | 
 | 81 | +while( se.moveNext() )  | 
 | 82 | +{  | 
 | 83 | +    info(Con2Str(se.current()));  | 
 | 84 | +}  | 
 | 85 | +```  | 
 | 86 | + | 
 | 87 | +## 7. [Работа с группой энумераторов](Job_SysEnumeratorExample06_File.xpp)  | 
 | 88 | + | 
 | 89 | +  | 
 | 90 | + | 
 | 91 | +```java  | 
 | 92 | +    SysEnumerator_SysOperationProgress progress = SysEnumerator_SysOperationProgress::construct();  | 
 | 93 | +    SysEnumerator_FillSetFromValue values2set = SysEnumerator_FillSetFromValue::construct();  | 
 | 94 | + | 
 | 95 | +    SysEnumerator se = SysEnumerator::construct()  | 
 | 96 | +        .add(progress)  | 
 | 97 | +        .add(values2set)  | 
 | 98 | +        .add(SysEnumerator_First::construct(1000));  | 
 | 99 | + | 
 | 100 | +    while( se.moveNext() )  | 
 | 101 | +    {  | 
 | 102 | +        // my super business logic  | 
 | 103 | + | 
 | 104 | +        progress.base().setText(strfmt("%1, %2", se.current(), values2set.base().elements()));  | 
 | 105 | +    }  | 
 | 106 | + | 
 | 107 | +    info(values2set.base().toString());  | 
 | 108 | +```  | 
0 commit comments