|
Пазлы (динамические базы данных).
Артикул | Наименование | Цена, от | SupCrossPzl32 | | Добавляет в Pzl1 все пересечения строк-32 целой Var1 и Var2 без учета крайних символов. JZ - нет пересечения | SupCrossPzl32, Pzl1, Var2, Var1 | | | SapPzlCompVar32 | | Добавление в Pzl1 фрагментов Var1, полученных разделением Var1 по комплексным вхождениям в нее элементов Arr1. Найденные вхождения при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Результат - EAX - число вхождений, JZ - нет вхождения. | SapPzlCompVar32, Pzl1, Var1, Arr1, Flg1 | | | PzlCompVar32 | | Добавление в низ Pzl1 фрагментов Var1, полученных разделением Var1 по комплексным вхождениям в нее элементов Arr1. Найденные вхождения при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Результат - EAX - число вхождений, JZ - нет вхождения. | PzlCompVar32, Pzl1, Var1, Arr1, Flg1 | | | PzlDarInd | | Дописывает в ячейку 0 вновь созданной строки Grid-Pzl1 переменную активной строки Dar1 по индексу Ind1 с копией MsF1, MsF2. Вых. EAX - число обработанных переменных (0,1..). JL - ошибка, JZ - нет обработки. Портит EAX. | PzlDarInd, Pzl1, Dar1, Ind1 | Цикл Dar с функцией VarVal и NewLinePzl. | | PzlDarIndTop | | Дописывает в ячейку 0 новой строки Grid-Pzl1 переменную активной строки Dar1 с копией MsF1, MsF2 по индексу Ind1 с ограничением Top1 строк. Вых. EAX - число обработанных переменных (0,1..). JL - ошибка, JZ - нет обработки. Портит EAX. | PzlDarIndTop, Pzl1, Dar1, Ind1, Top1 | Сходна с PzlDarInd, имеет ограничение длины. Защищает Пазл от перегрузки. | | PzlDarMsPs | | Дописывает в ячейки вновь созданной строки Grid-Pzl1 переменные активной строки Dar1, заданные парами индексов-32 (приемник, источник,..) в VarPs1, с копией MsF1, MsF2. Сразу очищает Dar1 при Flg1=1. Вых. EAX - число обработанных переменных (0,1..). JL - ошибка, JZ - нет обработки. Портит EAX. | PzlDarMsPs, Pzl1, Dar1, VarPs1, Flg1 | На основе цикла с функцией GumArrRem. В отличие от PzlDarPs, пишет только активные строки. | | PzlDarPs | | Дописывает в ячейки вновь созданной строки Grid-Pzl1 переменные из всех подряд строк Dar1, заданные парами индексов-32 (приемник, источник,..) в VarPs1, с копией MsF1, MsF2. Сразу очищает Dar1 при Flg1=1. Вых. EAX - число обработанных переменных (0,1..). JL - ошибка, JZ - нет обработки. Портит EAX. | PzlDarPs, Pzl1, Dar1, VarPs1, Flg1 | На основе цикла с функцией GumArrRem. В отличие от PzlDarMsPs, пишет все строки - активные и неактивные | | GridPzlFromVar32 | | Нарезает в Pzl1 переменную Var1 по разделителю VarH, VarV. Результат в EAX - число вхождений, JZ - нет вхождения. | GridPzlFromVar32, Pzl1, Var1, VarH, VarV | Эффективная функция на основе StartVR и FixVar32, NewLinePzl. | | GridPzlFromDar | | Дописывает в GridPzl Pzl1 список Dar1. Результат в EAX - число вхождений, JZ - нет вхождения. | GridPzlFromDar, Pzl1, Dar1 | Преобразование данных в Pzl1 из Dar1. | | PzlCutVar32 | | Дописывает в GridPzl1 из Var1 нарезку списков из единственной строки-32 одинаковой длины Len32 (1,2,...). | PzlCutVar32, Pzl1, Var1, Len32 | На основе цикла с функцией NewLinePzl. | | PzlGridArr | | Дописывает строки Grid-Pzl1 (ф.2) списками из частей строк Arr1 между номеров (0,1,2,..), указанных в VarN подряд, как числа-32, вхождения в них Var2. | PzlGridArr Pzl1, Arr1, Var2, VarN | На основе функции ArrGridVar. | | GridArrPzl | | Из строк Arr1 по разделителю Delim32 "нарезаем" новые списки и добавляем как новые строки в Pzl1 (Функция2: Список текстовый (DATA BASE)). Значения MsF1, MsF2 переносятся из Arr1 в Pzl1. EAX - количество добавленных строк. | GridArrPzl, Pzl1, Arr1, Delim32 | На основе функций ArrFromVar32, NewLinePzl. Vreff -все ячейки строки через заданный разделитель. Модификация с опусканием Vreff: функция ArrLowRefGridPzl. | | ArrLowRefGridPzl | | Из строк Arr1 по разделителю Delim32 "нарезаем" новые списки и добавляем в ObRef строки в Grid-Pzl1 (Функция2). Vreff - все ячейки строки через заданный разделитель в нижнем регистре. Значения MsF1, MsF2 переносятся из Arr1 в Pzl1. EAX - количество добавленных строк. | ArrLowRefGridPzl, Pzl1, Arr1, Delim32 | На основе функций ArrFromVar32, NewLinePzl, LowVar. Модификация функции GridArrPzl. | | GridPzlCompar | | Поиск совпадения ObRef элементов списка Pzl1 и Pzl2. При совпадении строк установка MsF1=0 в обоих Пазлах. Вых. EAX - число совпавших строк. JZ - нет совпадений., JL - ошибка. Портит EAX, EBX. | GridPzlCompar, Pzl1, Pzl2 | На основе функции QArrFromMsF1Pzl, ArrSearQArr . Отмечает совпадения строк установкой MsF2=0 обоих пазлов! | | GridPzlMsRemEquSym | | Сравнение и замена в строках ObRef Pzl1 и Pzl2 при Flg1=1 совпадающих, при Flg1=0 несовпадающих символов-32 на Dat32. Портит EAX, EBX. JL - ошибка, нет вхождения. Учет фильтров MsF1=1 в обоих Пазлах. Вых. EAX - число скопированных строк. JL - нет совпадений, ошибка. Портит EAX, EBX. | GridPzlMsRemEquSym, Pzl1, Pzl2, Dat32, Flg1 | Сдвоенный цикл пазлов с функцией ArrRemEquSym32. | | VReffToPz | | Заменяет строки пазла GridPzl1 на переменные VReff. | VReffToPzl, Pzl1 | | | RunPzl | | "Бегущий" Pzl: на 1 место встраивается Var1. При превышении размера последний элемент отвязывается в EAX | RunPzl, Pzl1, Var1, Siz1 | | | PzlCutDown | | Отвязывание последнего элемента Pzl1 (EAX=Adr) | PzlCutDown, Pzl1 | | | SupPzl | | Поиск равенства переменной Var1 с переменными VReff + поднятие переменной VReff пазла Pzl1; Опускание строк с учетом рейтингов на шаг 4. EAX=найденная строка Arr; JNZ нет вхождения/ошибка, EBX=%/10 найденого от начала Пазла. | SupPzl, Pzl1, Var1 | На основе SearUpPzl. Ставит рейтинг, опускает строки с низким рейтингом, поднимает при совпадении. В EBX указывает %/10 от положения найденной строки, считая от начала (0-10). Если запись новая, не найдена в списке, EBX=11 (110%). Рейтинг записи квадратичный (%/10)^2+1, при нахождении прибавляется к прежнему. Начальный рейтинг равен нулю. | | SupFastPzl | | Поиск равенства переменной Var1 с переменными VReff + поднятие переменной VReff пазла Pzl1. EAX=найденная строка Arr; JNZ нет вхождения/ошибка, EBX=%/10 найденого от начала Пазла. | SupFastPzl, Pzl1, Var1 | Упрощенная версия SupPzl, быстрее в 7 раз - не опускает строки с низким рейтингом, не контроллирует размер пазла. В EBX указывает %/10 от положения найденной строки, считая от начала (0-10). Если запись новая, не найдена в списке, EBX=11 (110%). Рейтинг записи квадратичный (%/10)^2+1, при нахождении прибавляется к прежнему. Начальный рейтинг равен нулю. | | StepSupPzl | | Поиск равенства переменной Var1 с переменными VReff + поднятие переменной VReff пазла Pzl1; Опускание строк с учетом рейтингов на шаг Step1. EAX=найденная строка Arr; JNZ нет вхождения/ошибка, EBX=%/10 найденого от начала Пазла. | StepSupPzl, Pzl1, Var1, Step1 | Отличается от SupPzl возможностью выбора шага опускания от 0,1,2... .На основе SearUpPzl. Ставит рейтинг, опускает строки с низким рейтингом, поднимает при совпадении. В EBX указывает %/10 от положения найденной строки, считая от начала (0-10). Если запись новая, не найдена в списке, EBX=11 (110%). Рейтинг записи квадратичный (%/10)^2+1, при нахождении прибавляется к прежнему. Начальный рейтинг равен нулю. | | SupDatPzl | | Поиск переменной со значением Dat32 + поднятие записи пазла Pzl1; Опускание строк с учетом рейтингов на шаг Step1. EAX=найденная строка Arr; JNZ нет вхождения/ошибка, EBX=%/10 найденого от начала Пазла. | SupDatPzl, Pzl1, Dat32, Step1 | Аналогична StepSupPzl. | | SupIdPzl | | Поиск равенства UnId1 до Top1+1 всех строк сверху без учета фильтров. При отрицательных Top1, его значение считается, как процент (Top1/102) от длины Pzl1. Поднятие найденной строки пазла Pzl1. Опускание строк с учетом рейтингов на шаг Step1. Обновляет RatVir, RelRat, TimLst. Вых. EAX=найденная строка Arr; JNZ нет вхождения/ошибка, EBX=% найденого от начала Пазла. | SupIdPzl, Pzl1, UnId1, Top1, Step1 | На основе функций OverDrop, SearIdPzl, UpPzl, RefreshPzl. Находит целое число, как отношение найденного от начала к общему размеру (в %). | | SearUpPzl | | Поиск равенства переменной Var1 с переменными VReff + поднятие переменной VReff пазла Pzl1; EAX=адр строки/0; JZ нет вхождения/ошибка, EBX=Счетчик от начала Пазла. | SearUpPzl, Pzl1, Var1 | Поднимает строку при совпадении, без опускания | | FindPzl | | Поиск равенства переменной Var1 с переменными VReff строк пазла Pzl1; EAX=адр строки/0; JZ нет вхождения/ошибка, EBX=Счетчик от начала Пазла | FindPzl, Pzl1, Var1 | Полностью аналогичен функции SearUpPzl, кроме поднятия строки. | | ArrSearGridPzl | | Поиск первого равенства Arr1 в строке пазла Pzl1 при MsF1=1; EAX=адр строки Pzl1; EBX=Счетчик от начала Пазла(1,2,3)/-1/0; JL ошибка, JZ нет вхождения, JG найдено. | ArrSearGridPzl, Pzl1, Arr1 | В цикле существенно быстрее работает аналогичная функция ArrSearQArr, даже с созданием и удалением квазисписка. | | ArrSearQArr | | Поиск первого равенства Arr1 в ссылке ObRef пазла Pzl1 при MsF1>0 строк квазисписка QArr1; EAX=адр строки Pzl1; EBX=Счетчик от начала Пазла(1,2,3)/-1/0; JL ошибка, JZ нет вхождения, JG найдено. | ArrSearQArr, QArr1, Arr1 | В цикле существенно быстрее работает аналогичной функции ArrSearArr, даже с созданием и удалением квазисписка. | | SearIdPzl | | Поиск строки пазла (=EAX) по UnId до Top1+1 всех строк сверху без учета фильтров. При отрицательных Top1, его значение считается, как процент (Top1/102) от длины Pzl1. Вых. EAX=строка/0, EBX=номер строки/0, JL-Не найдено/ошибка. | SearIdPzl, Pzl1, UnId1, Top1 | Максимально быстрый поиск. | | UpPzl | | Перемещение элемента-строки Var1 на 1 место Pzl1. | UpPzl, Pzl1, Var1 | | | PastLine | | Привязываем элемент Var1 пазла Pzl1 над элементом Var2(=0, при привязке в конец) ---ПРИ Var2=0 ВНИЗ НЕ ВСТАВЛЯЕТ! | PastLine, Pzl1, Var1, Var2 | | | CutLine | | Отвызываем элемент Var1 пазла Pzl1 | CutLine, Pzl1, Var1 | Уменьшение размера пазла не производится. Необходимо делать это дополнительно. | | MoveLine | | Отвязываем элемент Var1 пазла Pzl1 и привязываем его над элементом Var2(=0, при привязке в конец) | MoveLine, Pzl1, Var1, Var2 | На основе функций CutLine, PastLine. | | DropStop | | Опускание строки Пазла Arr1 в пределах интервала Step1, пока рейтинги RatVir промежуточных строк больше рейтинга Arr1. | DropStop, Pzl1, Arr1, Step1 | | | OverDrop | | Опускание строк с учетом рейтингов | OverDrop, Pzl1, Step1 | | | Pzl1Past | | Встраивание Var1 на первое место Pzl1 без копирования | Pzl1Past, Pzl1, Var1 | | | NewLinePzl | | Создание новой строки-контейнера (Fl1=1 в начало, =0 в конец) Pzl1 и вставка(или копирование) в нее Obrf1/0 (К Obrf1 применяется ResPn). Размер пазла PSize изменяет. Фильтры строки MsF1, MsF2=0. Вых.: новая строка Pzl1 в EAX. JZ - ошибка. | NewLinePzl, Pzl1, Obrf1, Fl1 | ! при Fl1=1 не раб. - строки не добавляет! Размер пазла PSize и другие параметры заголовка необходимо корректировать отдельно! Для режима 0 создается новая копия Obrf1 и ссылка на нее пишется в новую строку-контейнер. Для режима 1 в ObRef ставится ссылка на Obrf1, как на ассоциацию, в ней находится адрес AssVar и пишется в VReff. Для режима 2 создается переменная, содержащая все ячейки строки через табуляцию и записывается в VReff. Режим 3, аналогично режиму 2: Obrf1 встраивается. Obrf1 в отдельных режимах пазла встраивается без копирования, потому что является строкой и может иметь сложную структуру. | | QLinePzl | | Создание Qn1 (1,2,3) новых строк-контейнеров (Fl1=1 в начало, =0 в конец) Pzl1 c MsF1=Ms1 и вставка в них пустых Var1 (применяется ResPn). Вых. EAX = последняя созданная строка/0. JL - ошибка. | QLinePzl, Pzl1, Fl1, Qn1 | На основе функции NewLinePzl. | | PzlWords | | Добавление в Arr2 (к MsF2 Arr2 прибавляется MsF2 строки Pzl1) фрагментов из VReff строк Pzl1 при MsF1=1, полученных разделением VReff по комплексным вхождениям в них разделителей из AllDel32. Комплексные вхождения в строки Arr2 "окончаний" - элементов Arr1/0 предварительно заменяются на пробел. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Вых. EAX - число просмотренных строк. JL - ошибка, JZ - нет просмотров. Портит EAX, EBX. | PzlWords Arr2, Pzl1, Arr1, Flg1 | На основе функции VarWords. Разделение текста на слова с отрезанием окончаний. Для подсчета количества необходимо добавить 1 (весовой коэффициент) к MsF2 исходного пазла. | | Anime | | Проигрывает пазл | Anime, Pzl1 | | | PzlPlusPzl | | Добавляет в Pzl1 копии строк Pzl2 с учетом MsF1, преобразуя их с учетом типов Пазлов. При отсутствии Pzl1 создает новый. Вых. Pzl1 - в EAX. Количество скопированных строк в EBX (0,1,2,..). JZ - нет копий. JL - ошибка. | PzlPlusPzl Pzl1, Pzl2 | На основе функции NewLinePzl, ArrCopy. В отличие от GridPzlCopy, копирует строки при MsF2=1. Пока только для типов 2-2 (Grid)! | | GridPzlCopy | | Добавляет в Grid-Pzl1 копии всех строк Pzl2, включая MsF1, MsF2. При отсутствии Pzl1 создает новый. Вых. Pzl1 - в EAX. Количество скопированных строк в EBX (0,1,2,..). JZ - нет копий. JL - ошибка. | GridPzlCopy Pzl1, Pzl2 | На основе функции NewLinePzl, ArrCopy. При отсутствии, создает новый Пазл макросом GridPzlCopy. В отличие от PzlPlusPzl, копирует все строки. Пока только для типов 2-2 (Grid)! | | GridPzlMsPs | | Замена (копирование) "резиновых" активных (MsF1=1) строк ObRef Pzl1 на строки Pzl2, заданные парами индексов-32 (приемник, источник,..) в VarPs1. Учет фильтров MsF1=1 в обоих Пазлах. Копирование в пределах длины Pzl1. Вых. EAX - число скопированных строк. JZ - нет совпадений, ошибка. Портит EAX, EBX. | GridPzlMsPs, Pzl1, Pzl2, VarPs1 | На основе функции GumArrRem. | | GridPzlMsF1PosPs | | Замена (копирование) "резиновых" активных (MsF1=1) строк ObRef по порядку с текущей позиции PPos (или с начала) Pzl1 на активные же строки Pzl2, заданные парами индексов-32 (приемник, источник,..) в VarPs1. Учет фильтров MsF1=1 в обоих Пазлах. Недостающие строки Pzl1 дополняются пустыми с MsF1=1. Вых. EAX - число скопированных строк. JZ - нет совпадений, ошибка. Портит EAX, EBX. | GridPzlMsF1PosPs, Pzl1, Pzl2, VarPs1 | На основе функций NLineMsF1GumPzl и GumArrRem. В отличие от GridPzlMsPs, может писать с произвольной строки и дописывать строки за нижние пределы. | | PlusTopGridPzl | | Копирует в Pzl1 первые Top1+1 от числа строк с MsF1=1 Пазла Pzl2. При отрицательных Top1, его значение считается, как процент (Top1/102) от уже выделенных строк Pzl2. При отсутствии Pzl1 создает новый. Вых. Pzl1 - в EAX. Количество скопированных строк в EBX (0,1,2,..). JZ - нет копий. JL - ошибка. | PlusTopGridPzl Pzl1, Pzl2, Top1 | | | PzlArr | | Встраивание списка Arr1 в Pzl1. Arr1 уничтожается. | PzlArr, Pzl1, Arr1 | | | NextPzl | | Цикл всех строк пазла Pzl1 (переход на следующйю строку по PAdr с коррекцией PPos) без учета фильтра MsF1=1: EAX-адр новой строки, JL-выход из цикла/ошибка. | NextPzl, Pzl1 | Вначале необходим сброс указателя пазла функцией ResPosPzl. | | NextMsF1Pzl | | Цикл пазла Pzl1 (при MsF1=1 переход на следующую строку за текущей): EAX-адр новой строки, JL-выход из цикла/ошибка. | NextMsF1Pzl Pzl1 | Вначале необходим сброс указателя пазла функцией ResPosPzl. | | NextPosPzl | | Цикл прохода пазла Pzl1: EAX-адр новой ячейки, EBX-номер строки (PPos), JL-ошибка | NextPosPzl, Pzl1 | Устарела!!! На удаление. Вначале необходим сброс указателя пазла функцией ResPosPzl. | | ResPosPzl | | Сброс текущей позиции пазла Pzl1: EAX-адр Pzl1, JL-ошибка | ResPosPzl, Pzl1 | | | MsF1MsF2Pzl | | Запись в MsF1 строки пазла Pzl1 результата сравнения MsF2 и Lev1 в зависимости от Flg2. Запись в MsF1 0 бита (бит инверсии) Flg2, если старшие биты Flg2=001Х: MsF2>Lev1, =010Х: MsF2>=Lev1, =011Х: MsF2=Lev1. Если 0 бит Flg2=1, то при выполнении условия в MsF1 пишется 1, нет - 0. 0 бит - инверсии. Всего 3*2=6 вариантов условий. Выход: EAX - количество выполненных условий. | MsF1MsF2Pzl, Pzl1, Lev1, Flg2 | Считает в EAX все строки, без разбора! | | WeigMsF2Pzl | | Вес фильтра MsF2. Оставляем активными строки пазла Pzl1 при истинности сравнения MsF2 и Lev1 в зависимости от Flg2 (в остальных - сброс MsF1=0). Условия: Flg2=1: MsF2>Lev1, 2: MsF2>=Lev1, 3: MsF2=Lev1, 4: MsF2Lev1. Выход: EAX - количество выполненных условий. JZ - нет активных строк, JL - ошибка. | WeigMsF2Pzl, Pzl1, Lev1, Flg2 | Похожа на MsF1MsF2Pzl, но учитывает MsF1. | | WeigColPzl | | Вес рейтинга Reit1 после его переноса в фильтр MsF2. Оставляем активными строки пазла Pzl1 при истинности сравнения MsF2 и Lev1 в зависимости от Flg2 (в остальных - сброс MsF1=0). Условия из функции WeigMsF2Pzl. Выход: EAX - количество выполненных условий. JZ - нет активных строк, JL - ошибка. | WeigColPzl, Pzl1, Reit1, Lev1, Flg2 | На основе функций MovMsF2Pzl, WeigMsF2Pzl. | | TemDatMsF2Pzl | | Обмен MsF2 и TemDat всех строк пазла Pzl1. Вых. EAX = число строк (1,2,..), JL - ошибка. | TemDatMsF2Pzl, Pzl1 | Позволяет сохранить, а затем восстановить значения фильтра MsF2 | | MovMsF2Pzl | | Запись в MsF2 значения любого рейтинга со смещением Reit1 строк пазла Pzl1 при MsF1>0; Вых: EAX=Счетчик, JL- нет вхождения/ошибка. Портит EAX, EBX. | MovMsF2Pzl, Pzl1, Reit1 | | | ArrToPzl | | Добавляет копии строк Arr1 в Pzl1 (Функция0 - простая копия Var1). | ArrToPzl, Pzl1, Arr1 | | | OpenVarPzl | | Добавляем строки TXT-файла в Pzl32 с кодировкой CodePage по разделителям строк-записей Entr32. | OpenVarPzl, Pzl32, VarName32, CodePage | На основе функции ArrToPzl. | | ArrPlusPzl | | Добавление (копирование) в Arr1 всех элементов VReff пазла Pzl1. | ArrPlusPzl, Arr1, Pzl1 | | | ArrMsF2PlusPzl | | Добавление в Arr1 рейтингов (в MsF2) и переменных VReff всего пазла Pzl1 без условий. При Flg1=0 пишется RatVir, при Flg1=1 RelRat. | ArrMsF2PlusPzl, Arr1, Pzl1, Flg1 | | | ArrPlusMsF2Pzl | | При значениях MsF2>Flg1 пазла Pzl1 добавление в Arr1 рейтингов (MsF2 в MsF2) и переменных пазла Pzl1. | ArrPlusMsF2Pzl, Arr1, Pzl1, Flg1 | Аналогична ArrPlusPzl3_8, ArrPlusTopPzl. | | ArrPlusPzl3_8 | | Добавление(копирование) в Arr1 3/8 от всех элементов пазла Pzl1, рейтинг RatVir пишется в MsF2 | ArrPlusPzl3_8, Arr1, Pzl1 | Аналогична ArrPlusTopPzl. В фильтр переменных списка вписывается значение рейтинга. Удобно для дальнейшей сортировки. | | ArrPlusTopPzl | | Добавление (копирование) в Arr1 Top1+1 переменных VReff пазла Pzl1, рейтинг RatVir пишется в MsF2. При отрицательных Top1, его значение считается, как процент (Top1/102) от длины Pzl1. | ArrPlusTopPzl, Arr1, Pzl1, Top1 | Аналогична ArrPlusPzl3_8 | | VarPlusTopPzl | | Добавление в Var1 Top1 элементов пазла Pzl1 через разделитель VarDl1/0. При отрицательных Top1, его значение считается, как процент (Top1/102) от длины Pzl1. | VarPlusTopPzl Var1, Pzl1, Top1, VarDl1 | | | VarPlusGridPzl | | Добавление (копирование) к Var1 с учетом MsF1 элементов списка строки Grid-пазла Pzl1 по разделителям элементов VarStp1/0 и сток VarStp2/0. EAX- счетчик записанных строк (1,2,3...). EAX=-1, JL - ошибка. | VarPlusGridPzl, Var1, Pzl1, VarStp1, VarStp2 | В цикле Pzl1 вызывается функция VarFromArr32. | | ArrMsF2GridPzl | | Добавление (копирование) в Arr1 с учетом MsF1 строк в составе десятичного значения MsF2(при Fl1=1), Delim32 и ячеек строки пазла Pzl1 через разделитель Delim32. JL - ошибка. | ArrMsF2GridPzl, Arr1, Pzl1, Delim32, Fl1 | На основе функции VarDecLen, VarFromArr32. | | SapArrCompGridPzl | | Добавление в Arr2 неповторяющихся фрагментов активных (MsF1=1) строк GridPzl1 разделением по комплексным вхождениям в них элементов Arr1 с подсчетом совпадений в MsF2. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Вых. JL ошибка. | SapArrCompGridPzl, Arr2, Pzl1, Arr1, Flg1 | Перепроверить! На основе функции SapArrCompArr. | | ArrCompGridPzl | | Добавление в Arr2 фрагментов активных (MsF1=1) строк GridPzl1 разделением по комплексным вхождениям в них элементов Arr1. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Вых. JL ошибка. | ArrCompGridPzl, Arr2, Pzl1, Arr1, Flg1 | На основе функции ArrFromCompArr. | | PzlMsStrDar | | Ячейки по индексу Ind1 активных строк GridPzl1 заменяет в активных 0-ых ячейках Dar1 по свободным строкам. Фильтр MsF2 копируется. Вых EAX - число записанных строк. | PzlMsStrDar, Pzl1, Dar1, Ind1 | Заменяет ячейки 0 списка Dar подряд по активным строкам. | | QArrFromPzl | | Вставка в пустую переменную - квазисписок Arr1/0 ссылок на все строки пазла Pzl1. Если Arr1 не существует, создание нового. Вых. EAX=Arr1, EBX - число строк, JL - ошибка. | QArrFromPzl, Arr1, Pzl1 | Значительно ускоряет последовательный доступ и функции сортировки строк Pzl1, не нарушая порядок исходного Пазла. | | QArrFromMsF1Pzl | | Вставка в пустую переменную - квазисписок Arr1/0 ссылок на строки пазла Pzl1 при их MsF1>0. Если Arr1 не существует, создание нового. Вых. EAX=Arr1, EBX - число строк, JL - ошибка. | QArrFromMsF1Pzl, Arr1, Pzl1 | Значительно ускоряет последовательный доступ и функции сортировки строк Pzl1, не нарушая порядок исходного Пазла. | | QArrMsF1IndGridPzl | | Вставка в пустую переменную - псевдосписок Arr1/0 ссылок переменные по Ind1 строк пазла GridPzl при их MsF1>0. Если Arr1 не существует, создание нового. Вых. EAX=Arr1, EBX - число строк, JL - ошибка. | QArrMsF1IndGridPzl, Arr1, Pzl1, Ind1 | Сходна с функцией ArrPlusIndGridPzl, но вставляет сами переменные, а не их копии. | | QArrBackPzl | | Замена порядка ссылок на строки пазла Pzl1 из квазисписка Arr1/0. Корректирует заголовок Pzl1. Вых. EAX - число строк, JL - ошибка. | QArrBackPzl, Pzl1, Arr1 | Позволяет быстро вставлять в Пазл те же строки, отсортированные в другом порядке. | | QArrFromLinePzl | | Вставка в список Arr1/0 переменных-псевдокопий всех строк пазла Pzl1. Если Arr1 не существовал, создание нового. Вых. EAX=Arr1, EBX - число строк, JL - ошибка. | QArrFromLinePzl, Arr1, Pzl1 | | | QArrFromIndPzl | | Вставка в переменную QArr1/0 пар ссылок на ObRef Grid-ячейки по индексу Ind1 и ссылок самих строк пазла Pzl1. Фильтр MsF1 не учитывается. Если QArr1 не существовал, создание нового. Вых. EAX=Arr1, EBX - число строк, JL - ошибка. | QArrFromIndPzl, QArr1, Pzl1, Ind1 | | | QPzlMsF1TopPzl | | Добавление (копирование) в квазипазл QPzl(Ф3) первых Top1+1 ссылок на строки, VReff и ObRef пазла Pzl1 при условии MsF1=1. При отрицательных Top1, его значение считается, как процент (Top1/102) от длины Pzl1. Создет копии исходных Vreff. | QPzlMsF1TopPzl, Pzl2, Pzl1, Top1 | !!!Перепроверить - не работает GRID!!! Удобна для получения выборки из пазла. Строки формирует функция NewLinePzl (для режима 3). | | QPzlPlusPzl | | Добавление (копирование) в квазипазл(Ф3) QPz1/0 всех ссылок на строки, ObRef и новые копии VReff пазла Pzl2. Если Pzl1 не существует, создается как новый (в EAX). Вых. EAX - Pzl1, EBX -число строк (1,2,3), JL - ошибка. | QPzlPlusPzl, Pzl1, Pzl2 | Сходна с функцией QPzlMsF1TopPzl, но нечувствительна к фильтрам. | | CopyUIdPzl | | Заменяет в квазипазле QPzl1 собственный UnId на соответствующее значение из связанной по LiReff строки родительского Пазла без учета фильтров. EAX=счетчик строк Пазла Pzl1 (1,2...). JL - ошибка. | CopyUIdPzl, QPzl1 | Позволяет получать сквозную ссылку на Пазл при копировании в третий Пазл. | | ArrSearQArr | | Поиск первого равенства всех строк Arr1 строго по одинаковым индексам в ссылке ObRef Grid-пазла из QArr1 при MsF1>0 строк псевдосписка QArr1; EAX=адр строки Pzl1; EBX=Счетчик от начала Пазла(1,2,3)/-1/0; JL ошибка, JZ нет вхождения, JG найдено. | ArrSearQArr, QArr1, Arr1 | На основе функции ArrLineCompar. Применяется для поиска целого списка из строки Grid-PZL. В цикле, в случае совпадения, можно установить в найденной строке Пазла (=EAX) значение фильтра MsF1=0, исключив ее от повторного поиска. | | ArrPlusRPzl | | Добавление(копирование) в Arr1 всех рейтингов MsF1, MsF2, RatVir и переменных VReff пазла Pzl1 в одну строку. | ArrPlusRPzl, Arr1, Pzl1 | | | ArrPlusAssPzl | | Добавление(копирование) в Arr1 всех рейтингов и переменных пазла Pzl1 | ArrPlusAssPzl, Arr1, Pzl1, Pzl2 | | | ArrPlusIndGridPzl | | Добавление (копирование) к Arr1 с учетом MsF1 элементов из списков строк Grid-пазла Pzl1 по индексу Ind1. EAX- счетчик записанных строк (1,2,3...). EAX=-1, JL - ошибка. | ArrPlusIndGridPzl Arr1, Pzl1, Ind1 | На основе функции VarPlusIndArr. Медленная при больших индексах списков GRID-строк. | | ArrPlusIndMsF2Pzl | | Добавление (копирование) к Arr1 с учетом MsF1 элементов из списков строк Grid-пазла Pzl1 по индексу Ind1 и перенос значений MsF2. EAX- счетчик записанных строк (1,2,3...). EAX=-1, JL - ошибка. | ArrPlusIndMsF2Pzl, Arr1, Pzl1, Ind1 | Модификация функции ArrPlusIndGridPzl. | | SetTopMsF1Pzl | | Оставляет MsF1=1 первых Top1+1 от числа уже выделенных строк, устанавливая в остальных строках MsF1=0. При отрицательных Top1, его значение считается, как процент (Top1/102) от уже выделенных строк Pzl1. Вых. EAX - число оставшихся выделенных строк, ошибка JL. | SetTopMsF1Pzl Pzl1, Top1 | На основе функции TestSizePzl. | | VarInMsF1Pzl | | Прибавление к MsF2 Dat32 строк пазла Pzl1 при MsF1>0 при вхождении переменной Var1 в переменные VReff; Вых: EAX=Счетчик вхождений, JZ- нет вхождения/ошибка. Портит EAX, EBX. | VarInMsF1Pzl, Pzl1, Var1, Dat32 | На основе функции VarInVar32. | | QVarInPzl | | Прибавление к MsF2 строк пазла Pzl1 при MsF1>0 числа вхождений в них переменной Var1. При flg1=1 опускает ненайденные строки. Вых: EAX=Счетчик вхождений, JZ- нет вхождения/ошибка. Портит EAX, EBX. | QVarInPzl, Pzl1, Var1, flg1 | На основе функции QVarInVar32. Сходна с функцией QVarInMsF1Pzl, но считает в самих строках. | | QVarInMsF1Pzl | | Прибавление к MsF2 строк пазла Pzl1 при MsF1>0 числа вхождений переменной Var1 в переменные VReff. При flg1=1 опускает ненайденные строки. Вых: EAX=Счетчик вхождений, JZ- нет вхождения/ошибка. Портит EAX, EBX. | QVarInMsF1Pzl, Pzl1, Var1, flg1 | На основе функции QVarInVar32. Вариант функции VarInMsF1Pzl с учетом числа вхождений. | | PzlInPzl | | Вхождение VReff Pzl2 в Pzl1. Инкремент MsF2 строк пазлов Pzl2 и Pzl1 при MsF1>0 при вхождении в VReff Pzl1 строк VReff из Pzl2; Вых: EAX = Счетчик фактов вхождения строки VReff Pzl2 в хотя бы в одну строку VReff Pzl1, JL - ошибка, JZ - нет вхождения. Портит EAX, EBX. | PzlInPzl, Pzl1, Pzl2 | В цикле Pzl2 вызывается функция VarInMsF1Pzl. Фильтры MsF1, MsF2 должны быть предварительно инициализированы! | | LowGridPzl | | Опускает регистр букв в самих ячейках списка из ObRef пазла Pzl1 при фильтре MsF1>0. Вых.: EAX=счетчик опущенных строк Пазла Pzl1 (1,2...). JL - ошибка. | LowGridPzl, Pzl1 | Очень быстрая функция на основе функции LowArr. Текст-32 должен быть без BOM! - иначе, произойдет смещение и распознать юникод будет проблематично. Буквы Ё, Й декодируются для 1 и 2-символьных вариантов. | | LowSimpleReffPzl | | Заменяет в переменных строк VReff пазла Pzl1 в юникоде-32 на переменные с прописными буквами - опускает в нижний регистр и заменяет некоторые национальные символы на упрощенные (в латинице, кириллице и латышском). Вых: EAX=Счетчик вхождений. | LowSimpleReffPzl, Pzl1 | На основе функций LowVar, SimpleVar32. | | ArrStatPzl | | Запись в MsF2 строк Arr1 количесва их вхождений в VReff Pzl1 при MsF1>0. | ArrStatPzl, Pzl1, Arr1 | | | TestSizePzl | | Подсчет по циклу размера пазла Pzl1 и число MsF1>0; EAX=размер, EBX-выделение; JL -ошибка. Портит EAX, EBX. | TestSizePzl, Pzl1 | Максимально быстрая функция. Эффективно подсчитывает размер выделения из MsF1. | | OpenGridPzl | | Добавляем TXT-файл в Pzl32 построчно, разрезая на ячейки-переменные по разделителям строк-записей Delim32_0, их элементов - Delim32_1. Значения MsF1=1, MsF2=0. Строка Vreff включает все ячейки строки через табуляторы. EAX - количество добавленных строк. JZ - ошибка. | OpenGridPzl, Pzl32, VarName32, CodePage, Delim32_1, Delim32_0 | На основе функций OpenTextArr32, GridArrPzl. Пере-инициализирует пазл на Функцию2: Список текстовый (DATA BASE). Модифицированный аналог с опусканием VReff: OpenLowRefGridPzl. | | OpenLowRefGridPzl | | Добавляем TXT-файл в Pzl32 построчно, разрезая на строки по Entr32 и ячейки-переменные на Tab32. Значения MsF1=1, MsF2=0. Строка Vreff включает все ячейки строки через табуляторы в нижнем регистре. EAX - количество добавленных строк. JZ - ошибка. | OpenLowRefGridPzl, Pzl1, VarName32, CodePage | На основе функций OpenTextArr32, ArrLowRefGridPzl. Опускает Vreff Pzl1. Модифицированный аналог функции OpenGridPzl. | | SaveGridPzl | | Сохраняем TXT-файл из Pzl32 с учетом MsF1 по разделителям строк-записей Delim32_0, их элементов - Delim32_1 | SaveGridPzl, Pzl32, VarName32, Starr, CodePage, Delim32_0, Delim32_1 | Необходимо активировать фильтр MsF1, например, функцией ActiPzl. | | SaveFromGridPzl | | Сохраняем TXT-файл из Pzl32 с учетом MsF1 по разделителям строк-записей Delim32_0, их элементов - Delim32_1 по номерам позиций из VarPs(N1,N2...Nx). | SaveFromGridPzl, Pzl32, VarPs, VarName32, Starr, CodePage, Delim32_0, Delim32_1 | Необходимо активировать фильтр MsF1, например, функцией ActiPzl. | | ArrPlusGridPzl | | Добавление(копирование) в Arr1 с учетом MsF1 элементов списка строки пазла Pzl1 через разделитель Delim32 | ArrPlusGridPzl, Pzl1, Arr1, Delim32 | На основе функции VarFromArr. Необходимо активировать фильтр MsF1, например, функцией ActiPzl. | | ArrFromGridPzl | | Добавление (копирование) в Arr1 с учетом MsF1 элементов списка строки пазла Pzl1 через разделитель Delim32 по номерам позиций из VarPs(N1,N2...Nx). Копирование MsF2 строки пазла в MsF2 строки списка. | ArrFromGridPzl, Pzl1, VarPs, Arr1, Delim32 | Необходимо активировать фильтр MsF1, например, функцией ActiPzl. | | SearGridPzl | | Поиск равенства переменной Var1 в индексе Ind1 всех строк пазла Pzl1; EAX=адр строки Pzl1/0; EBX=адр строки GridArr/0, ECX=Счетчик от начала Пазла; JZ нет вхождения/ошибка. | SearGridPzl, Pzl1, Ind1, Var1 | Цикл пазла без учёта фильтров. Функции VarVal и VarEqu32. | | SearGridMsF1Pzl | | Поиск равенства переменной Var1 в индексе Ind1 активных строк (MsF1=1) пазла Pzl1; EAX=адр строки Pzl1/0; EBX=адр строки GridArr/0, ECX=Счетчик от начала Пазла; JZ нет вхождения/ошибка. | SearGridMsF1Pzl, Pzl1, Ind1, Var1 | | | SearAssPzl | | Ассоциативный поиск равенства переменной Var1 в индексе Ind1 активных строк (MsF1=1) пазла Pzl1; EAX=значение[Ind2] (адрес переменной), EBX=адр. списка строки[Ind2], ECX= список ObRef строки; JLE - нет вхождения/ошибка. | SearAssPzl, Pzl1, Var1, Ind1, Ind2 | На основе функции SearGridMsF1Pzl, VarVal. | | GridPzlInArr | | В цикле Arr1: при равенстве строки Arr1 в Ind1 GridPzl - инкремент MsF1, при неравенстве строки Arr1 - инкремент ее MsF1, EAX=число ненайденных строк Arr1 | GridPzlInArr, Arr1, Pzl1, Ind1 | На основе функции SearGridPzl. | | GridPzlIdPzl | | Для Ind2 элемента Arr2 каждой строки Grid-Pzl2 находит совпадение с Ind1 элемента Arr1 строки Grid-Pzl1 и вызывает функцию обработки найденных строк по адресу AdrFn1/0 с тремя параметрами Arr1, Arr2 и внешним VarCn1. Фильтры MsF1 нигде не учитываются. Прибавляет 1 к MsF2 строки Pzl2 при несовпадении ее элемента Grid-списка с соотвествующей ячейкой в Pzl1. | GridPzlIdPzl Pzl1, Pzl2, Ind1, Ind2, VarCn1, AdrFn1 | С использованием быстрой функции QArrFromIndPzl. Находит соответствие "ячеек - артикулов" и вызывает ненулевой обработчик найденных строк. При отсутствии совпадения прибавляет 1 к MsF2 в Pzl2. При AdrFn1=0 обработчик не вызывается. Поскольку, к MsF2 за весь цикл прибавляется только единица, можно запускать функцию каскадно, последовательно исключая несколько параметров. | | GridMsPzlMinusPzl | | Вычитание активных ячеек. При совпадении Ind2 элемента Arr2 каждой строки Grid-Pzl2 с Ind1 элемента Arr1 строки Grid-Pzl1 скрывает её, устанавливая фильтр MsF1=0. | GridMsPzlMinusPzl Pzl1, Pzl2, Ind1, Ind2 | Скрывает строки при совпадении ячеек. | | EmptIndGridPzl | | Скрывает при Flg1=0, оставляет при Flg1=1 строки с пустыми/отсутствующими ячейками столбца Ind1 пазла Pzl1 при MsF1>0, устанавливая MsF1=0. Вых. EAX - число нескрытых строк (0,1,2..), JL - ошибка. | EmptIndGridPzl Pzl1, Ind1 | На основе цикла с функцией VarVal и макросом VarEmp32 . | | FltoInd_GridPzl | | Запись десятичного значения фильтра пазла Pzl1 по индексу Ind1 | FltoInd_GridPzl, Pzl1, Ind1 | | | PosMsF1Pzl | | Получение строки пазла Pzl1 по ее номеру (0,1,2...) от начала Pos1 в регистре EAX; JL - ошибка. | PosMsF1Pzl, Pzl1, Pos1 | Максимально быстрая функция. | | NewGridPzl | | Добавление в текущей строке (списке) Pzl1 нового элемента - копии Var1. | NewGridPzl, Pzl1, Var1 | К списку добавляется копия переменной. | | NLineGumPzl | | Получение строки пазла Pzl1 по ее номеру от начала NStr1(0,1,2...) без учета фильтра MsF1; Недостающие номера дополняются пустыми строками с MsF1=0. Использует и корректирует значения PPos и PAdr. Строка в EAX, JL - ошибка. | NLineGumPzl, Pzl1, NStr1 | Новые строки создаются функцией QLinePzl. Проходит все ячейки по циклу от значения Padr (при Ppos< NStr1 и Ppos>0) или от начала пазла, максимально быстро. См. также NLineMsF1GumPzl. | | NLineMsF1GumPzl | | Получение активной строки пазла Pzl1 по числу активных MsF1=1 от начала NStr1(0,1,2...); Недостающие строки создаются с MsF1=1 и с пустыми строками ObReff. Использует и корректирует значения PPos и PAdr для активных строк с MsF1=1. Строка в EAX, JL - ошибка. | NLineMsF1GumPzl, Pzl1, NStr1 | Ускоритель по PPos не работает и отключен!!! Новые строки создаются функцией QLinePzl. Проходит активные ячейки с MsF1=1 по циклу от значения Padr (при Ppos< NStr1 и Ppos>0) или от начала пазла, максимально быстро. Можно применять для предустановки позиции PPos. Может использоваться в цикле. Перед цилом имеет смысл предварительная инициализация PPos=0, например, функцией ResHeadPzl. См. также NLineGumPzl. | | GridPzlEqSize | | Выравнивает горизонтальное число ячеек (размер) Pzl1 по максимальному значению. Без учета фильтров. Вых. EAX - максимальный размер, EBX - число строк пазла. | GridPzlEqSize, Pzl1 | На основе функции GumArr. | | GumGridPzl | | Получение в регистре EAX ячейки строки "резинового" пазла Pzl1 по координатам строки NStr1 и горизонтальному индексу Ind1; Если NStr1 или Ind1 превышают размерность Pzl1, то он дополняется пустыми строками и элементами. Помещает в EAX ячейку-переменную, в EBX= адрес ячейки "резинового" списка2 по [Ind1, Ind2], ECX - строка. Портит EAX, EBX, ECX. | GumGridPzl, Pzl1, NStr1, Ind1 | На основе функций NLineGumPzl и GumArr. Медленная функция. Необходимо следить за размерами: при их превышении пазл растягивается! | | GumPzlPlusVar | | Добавление переменной в "резиновый" пазл Pzl1 по координатам строки NStr1 и горизонтальному индексу Ind1; Если NStr1 или Ind1 превышают размерность Pzl1, то он дополняется пустыми строками и элементами. Портит EAX, EBX, ECX. | GumPzlPlusVar, Pzl1, Var1, NStr1, Ind1 | На основе функции GumGridPzl, макроса VarPlus32. | | GumGridPzlCopyVar | | Копирование (замена) переменной в "резиновый" пазл Pzl1 по координатам строки NStr1 и горизонтальному индексу Ind1; Если NStr1 или Ind1 превышают размерность Pzl1, то он дополняется пустыми строками и элементами. Портит EAX, EBX, ECX. | GumGridPzlCopyVar, Pzl1, NStr1, Ind1, Var1 | На основе функции GumGridPzl, макроса VarCopy. | | GumTransGridPzl | | Транспонирование (обмен строк и ячеек) пазла Pzl2 при MsF1>0 в резиновом пазле Pzl1. Если Pzl1=0, то создается новый. EAX=Pzl1, EBX=счетчик строк Пазла Pzl2 (1,2...). JL - ошибка. | GumTransGridPzl, Pzl1, Pzl2 | На основе функции GumGridPzlCopyVar. | | LineEdit | | В строке Line1 Grid-пазла: перезапись в VReff переменных (из списка ячеек Grid), согласно формату ArrFm (индекс, функция, разделитель). | LineEdit, Line1, ArrFm | Vreff перед записью очищается. | | GridEdit | | Перезапись в VReff строк Pzl1 формата списка ячеек согласно списку ArrFm (индекс, функция, разделитель). | GridEdit, Pzl1, ArrFm | На основе функции LineEdit. Программируемая запись Vreff. | | PzlMsF1GridEdit | | Редактирование столбца пазла Pzl1 по "резиновому" индексу Ind1 элементов списков его строк (при MsF1>0) по функции VarEdit(Fun1, Var1/0, Var2/0). При Fun1>1000, вместо Var2 подставляется номер активной строки вида 00001, а младшие разряды Fun1 используются по назначению. | PzlMsF1GridEdit, Pzl1, Ind1, Fun1, Var1, Var2 | На основе функций GumArr и VarEdit. | | PzlMsF1GridCondit | | Проверка условия столбца пазла Pzl1 по "резиновому" индексу Ind1 элементов списков его строк (при MsF1>0) по функции VarCondit(Fun1, Var1/0). Если условие не выполнено, установка фильтра строки MsF1=0. Вых. EAX - число выполненных условий, JL ошибка. | PzlMsF1GridCondit, Pzl1, Ind1, Fun1, Var1 | На основе функций GumArr и VarCondit. | | PzlMsF1GridConditArr | | Проверка условия столбца пазла Pzl1 по "резиновому" индексу Ind1 элементов списков его строк (при MsF1>0) по функции VarCondit(Fun1, Arr1/0). Если условие не выполнено, установка фильтра строки MsF1=0. Вых. EAX - число выполненных условий, JL ошибка. | PzlMsF1GridConditArr, Pzl1, Ind1, Fun1, Arr1 | На основе функций GumArr и VarConditArr. | | PzlMsF1GridEditConditArr | | Программируемая замена по условию столбца пазла Pzl1 по "резиновому" индексу Ind1 элементов списков его строк (при MsF1>0) функцией VarEditConditArr(Pzl1[Ind1], Var2, Fun1, Fun2, Arr1, Arr2/0). Вых. EAX - число выполненных условий, JL ошибка. | PzlMsF1GridEditConditArr, Pzl1, Ind1, Var2, Fun1, Fun2, Arr1, Arr2 | На основе функций GumArr и VarEditConditArr. | | GridReffPzl | | Перезапись в VReff всех строк Pzl1 переменных списка ячеек строк через разделитель VarStp/0. Без учета фильтров. | GridReffPzl, Pzl1, VarStp | На основе CleVar, VarFromArr. Создет переменные ссылок при их отсутствии. | | GridPzlEditMs | | Редактирование по строкам "резиновых" ячеек столбца Ind1 активных (MsF1=1) строк ObRef Pzl1 на параллельные ячейки столбца 0 и 1 соответствующей по порядку строки Pzl2. Учет фильтров MsF1=1 в обоих Пазлах. Редактирование в пределах длины Pzl1. Вых. EAX - число скопированных строк. JZ - нет совпадений, ошибка. Портит EAX, EBX. | GridPzlEditMs, Pzl1, Pzl2, Ind1, Fun1 | На основе функции VarEdit. Проходит активные строки Pzl1, данные берет из соответвующих активных строк Pzl2. Для каждой строки могут быть разные данные. | | GridPzlConditMs | | Проверка условия по строкам "резиновых" ячеек столбца Ind1 активных (MsF1=1) строк ObRef Pzl1 с параллельными ячейками столбца 0 соответствующей по порядку строки Pzl2. При невыполнении - в Pzl1 и Pzl2 установка MsF1=0. Учет фильтров MsF1=1 в обоих Пазлах (в пределах длины Pzl1). Вых. EAX - число скопированных строк. JZ - нет совпадений, ошибка. Портит EAX, EBX. | GridPzlConditMs, Pzl1, Pzl2, Ind1, Fun1 | | | RemMsPsGridPzl | | Распределение с учетом MsF1 элементов строки Pzl1 по номерам их позиций из VarPs(N1,N2...Nx). Позиции могут повторяться. Невошедшие удаляются. При ошибке строк пишет пустые строки. | RemMsPsGridPzl, Pzl1, VarPs1 | На основе функции ArrPlusPs. | | FixPzl32 | | Поиск вхождения VReff Pzl1 в Var1 по адресу Adr1. Вых: EAX: Адрес за вхождением (Var1); 0= Нет вхождения/JZ - Нет вхождения. EBX: Длина Var2. ECX: 0= Достижение стоп-адреса. ESI: строка Pzl1. EDI: вошедшая VReff. | FixPzl32, Var1, Pzl1, Adr1 | Замены происходят с верхушки пазла. Выход при первом совпадении. Поэтому, может потребоваться предварительная сортировка переменных по убыванию длины. Строки пазла при поиске не перемешиваются. | | VarCompPzl32 | | Комплексная замена вхождений в Var1 переменной VReff Grid-Pzl1 на ячейку Ind1. Результат в EAX, EBX - число вхождений, JZ - нет вхождения. | VarCompPzl32, Var1, Pzl1, Ind1 | На основе функции FixPzl32. На замену предлагается функция VarRepDar. Эта, возможно, не работает!!! Удобная функция комплексной замены. Строки пазла при поиске не перемешиваются. Примеры использования - перевод национального языка в транслит, замена на синонимы и т.п. | | ReffCompVarPzl | | Комплексная замена в переменных всех строк VReff пазла Pzl1 в юникоде-32 вхожений строк Arr1 на Spac32 (пробел), соседние дубликаты вхождений удаляются. Вых: EAX=Счетчик вхождений. | ReffCompVarPzl, Pzl1, Arr1 | На основе функции VarCompVar32. Позволяет убрать из строки лишние элементы (разделители), заменив их на пробел. | | PzlReffCompDar | | Комплексная замена в переменных строк-32 VReff пазла Pzl1 вхожений строк из первой колонки Dar1 на соответствующие из второй. Вых: EAX=Счетчик вхождений. | PzlReffCompDar Pzl1, Dar1 | На основе функции VarRepDar. | | RoubCross | | Дописывает в LPzl пересечения общих начал из строк Arr1. | RoubCross, LPzl, Arr1 | | | KillLine | | Удаляет отвязанную строку Pzl. EAX= рейтинг виртуальный (RatVir) /0 удаленной строки. | KillLine, Pzl, Var1 | | | KillBottLine | | Удаляет последнюю строку Pzl. EAX= рейтинг виртуальный (RatVir) /0 удаленной строки. | KillBottLine, Pzl1 | Перепроверить | | KillBotPzl | | Удаление элементов пазла Pzl1 ниже Top1. При отрицательных Top1, его значение считается, как процент (Top1/102) от длины Pzl1. | KillBotPzl, Pzl1, Top1 | Перепроверить | | KillMsF1Pzl | | Очищение строк пазла Pzl1 при условии MsF1=Fl1. EAX=число удаленных строк. | KillMsF1Pzl Pzl1, Fl1 | На основе функции KillLine. Частичное условное очищение пазла. | | LenMsfPzl | | Вставка значений длин VReff в фильтр MsF2 пазла Pzl1 при MsF1>0. Некорректная VReff записывается, как -1. EAX=счетчик строк Пазла Pzl1 (1,2...). JL - ошибка. | LenMsfPzl, Pzl1 | Цикл Пазла с макросом VarByte32. | | QCellMsfGridPzl | | Вставка количества ячеек активной строки в фильтр MsF2 пазла Pzl1 при MsF1>0. Некорректное количество записывается, как -1. EAX=счетчик строк Пазла Pzl1 (1,2...). JL - ошибка. | QCellMsfGridPzl, Pzl1 | На основе LenArr. | | SortRatPzl | | Сортировка по рейтингу RatVir пазла Pzl1Fl1=0 по убыванию, 1=по возрастанию | SortRatPzl, Pzl1, Fl1 | | | SortRelPzl | | Сортировка по рейтингу RelRat пазла Pzl1; Fl1=0 по убыванию, 1=по возрастанию | SortRelPzl, Pzl1, Fl1 | | | SortMsF2Pzl | | Сортировка по фильтру MsF2 пазла Pzl1; Fl1=1 по убыванию, 0=по возрастанию. JL - ошибка. Не портит регистры. | SortMsF2Pzl, Pzl1, Fl1 | На основе функций QArrFromPzl, SortMsF2Arr, QArrBackPzl. | | StriSortPzl | | Сортировка строк-32 (VReff) пазла Pzl1 как чисел; Fl1=0 по убыванию, Fl1=1 по возрастанию. | StriSortPzl, Pzl1, Fl1 | Не работает, убивает Пазл! | | RevSortPzl | | Реверсивная сортировка (от конца к началу) строк-32 (VReff) пазла Pzl1 как чисел; Fl1=0 по убыванию, Fl1=1 по возрастанию. | RevSortPzl, Pzl1, Fl1 | Реверсивная копия функции StiSortPzl. | | MixRndPzl | | Перемешивает случайно Pzl1, прибавляя к MsF2 случайные числа в диапазоне RndMax1 с последующей сортировкой строк. JL - ошибка. Не портит регистры. | MixRndPzl, Pzl1, RndMax1 | Сходна с функцией SortMsF2Pzl, базовая функция - ArrMixRnd. | | PzlVreffUniq | | Отмечает неуникальные дубликаты по VReff строки пазла Pzl1 (кроме первой) установкой фильтра MsF1=0. Учитываются только активные строки с MsF1=1. EAX=число отмеченных строк. | PzlVreffUniq Pzl1 | Остается только удалить неактивные строки. | | PzlPlusVar | | Добавление в Pzl1 справа столбца из переменной Var1/0 типа Sng1, EAX=число строк, ошибка: EAX=-1 / JZ | PzlPlusVar, Pzl1, Sng1, Var1 | | | GetObjPzl | | Получение в EAX объекта текущей строки пазла. IL- ошибка. | GetObjPzl, Pzl1 | Очень простая и быстрая функция. Обычно применяется вместе с NextPosPzl. При сбросе пазла может давать ошибку - указатель текущей строки пазла стоит на нуле. | | QuSecMsF1Pzl | | В диапазоне от Tim1 до Tim2 (сек., Tim1 < Tim2) назад от текущего момента устанавливает в MsF1=Flg1 (1/0) в активных строках (фильтр MsF1=1). Сравнение по значению последнего времени вызова . В остальных активных строках устанавливаем инверсию флага в MsF1. Вых. EAX-счетчик. | QuSecMsF1Pzl, Pzl1, Tim1, Tim2, Flg1 | Tim1 < Tim2 | | RefreshPzl | | Инкремент числа обращений (PTime) и удаление нижней строки по маске (Инкремент числа обращений (PTime) и удаление нижней строки по маске (PMax) пазла Pzl1. Контроль размера пазла Pzl1 (PMax) при отклонении рейтинга нижней строки от RatMin1=1.) пазла Pzl1. | RefreshPzl, Pzl1 | | | ResDownMsF2Pzl | | Сброс фильтра MsF1=0, и деление MsF2 на 2 в степени Lev1, пазла, EAX-счетчик. | ResDownMsF2Pzl, Pzl1, Lev1 | Применяется для частичного сохранения старого контекста. | | ActiPzl | | Активирует пазл Pzl1, устанавливая фильтр MsF1 в 1, EAX=счетчик от начала Pzl1. | ActiPzl, Pzl1 | Фильтр MsF2 не изменяется. | | InverMsF1Pzl | | Инвертирует фильтр MsF1 пазла Pzl1, устанавливая 0 в 1 и наоборот. EAX=счетчик строк MsF1=1 Пазла Pzl1 (1,2...). JL - ошибка. | InverMsF1Pzl Pzl1 | | | BetweenMsfPzl | | Обмен между фильтрами MsF1 и MsF2 пазла Pzl1. EAX=счетчик строк Пазла Pzl1 (1,2...). JL - ошибка. | BetweenMsfPzl, Pzl1 | | | ResGridPn | | Применение ResPn к спискам ячеек строк Pzl1 (сброс позиции) | ResGridPn, Pzl1 | | | SetMsF2Pzl | | Запись в фильтр MsF2 пазла Pzl1 значения Lev1. Вых. EAX-счетчик. | SetMsF2Pzl Pzl1, Lev1 | | | PzlPlusMsF2 | | Запись в фильтр MsF2 активного (MsF1=1) столбца пазла Pzl1 номера его строки, начиная с нуля. Вых. EAX - число ктивных строк, JL ошибка. | PzlPlusMsF2, Pzl1 | | | ResPzl | | Сброс фильтров MsF1=0, MsF2=0, RatVir=0, RelRat=0 пазла, инициализация режима фильтров PFlMod=1(=logic, paste), PPos=0, PAdr=PAdr0. EAX-счетчик. | ResPzl, Pzl1 | | | ResHeadPzl | | Сброс строки заголовка Pzl1: инициализация режима фильтров PFlMod=1(=logic, paste), PPos=0, PAdr=PAdr0. JL - ошибка. | ResHeadPzl, Pzl1 | Простейшая функция. | | ClePzl | | Очищение пазла Pzl1. EAX=число удаленных строк. | ClePzl, Pzl1 | Остается один заголовок. Все указатели сбрасываются в ноль. | | KillPzl | | Удаление пазла Pzl1. EAX=число удаленных строк. | KillPzl, Pzl1 | На основе функции ClePzl. Заголовок уничтожается. | |
Страница "Пазлы (динамические базы данных)." обновлена -
|