|
Списки Arr (одномерные массивы).
Артикул | Наименование | Цена, от | SizeCopyArr32 | | Дописывает в список Arr1 список размером Arr2 с элементами, залитыми значением Val32. Не портит регистры совсем. | SizeCopyArr32, Arr1, Arr2, Val32 | На основе функций SizeArr32 и CreArr32. Создает список равного размера. | | ArrDownToVar32 | | Бегущий вниз список, до (включая) Var1. [EAX] = последняя задвинутая переменная, EBX=последний обработанный индекс . JZ - найдена | ArrDownToVar32, Arr1, Var1 | Вставляет на 1 место пустую переменную, по циклу бысто переносит элементы на 1 шаг вниз. При равенстве переменных опускает и выходит. Если равенства нет, проходит весь список без расширения, последний элемент-переменную сохраняет в EAX. | | RunArrDown | | Бегущий вниз список. На первое место ставится копия Var1, остальный сдвигаются вниз. Вых. [EAX] = сдвинутая с последней строки переменная. | RunArrDown, Arr1, Var1 | На основе цикла переноса элементов вниз по фиксированному списку Arr1. Ничего не удаляет. | | RunArr | | Бегущий объект Obj1 типа Var (Arr, Dar). При Obj1=0 создание новой. Добавление Obj1 в начало Arr1. Длина Arr1 ограничена размером Siz1. Вых. EAX - первая переменная (Obj), EBX - последняя переменная (Obj). JZ, если длина Arr1 не больше Siz1, удалять последнюю переменную еще не надо. Портит EAX, EBX. | RunArr, Arr1, Obj1, Siz1 | На основе цикла переноса элементов. Может использовться переменная-квазисписок (объекты являются простыми ссылками). В отличие от функции RunArrDown, добавляется не копия, а сам объект! Признак JNZ означает необходимость удаления освободившегося объекта в EBX (KillVar/KillArr). | | Circle8Pn | | Бегущие по кругу ссылки (сдвиг на 8 текущих параметров), Вых: EAX=Старший искомый адрес, EBX=младший искомый адрес, JZ-конец прямого цикла. Портит только EAX, EBX. | Circle8Pn, Arr1 (Var1) | Простейшая функция на основе макроса NextPn. До первого запуска требуется сброс ResPn. | | RevArr | | Реверс строк в самом списке Arr1. | RevArr, Arr1 | На основе функций VarRev и VarCopy. | | ArrRevVar | | Реверс в строках списка Arr1: Stp1=4,8-шаг строки. Вых. новый список в EAX. | ArrRevVar, Arr1, Stp1 | На основе функции VarRev. | | ArrInArr | | Поиск вхождения Arr2 в Arr1. EAX - длина конца вхождения. JL, если ошибка, JZ - нет вхождения | ArrInArr, Arr1, Arr2 | На основе функций RevArr, RunArr, ArrLineCompar . | | VtoHArr | | Замена строк 32 бита на столбцы (вых: адр в EAX) | VtoHArr, Arr1 | Разработан для поворота 32-битного изображения. Возможно применение для любых 32-битных ячеек. | | ArrRight | | Перед каждым элементом списка Arr1 добавляем переменную Var1. | ArrRight, Arr1, Var1 | | | ArrLeft | | К каждому элементу добавляем переменную | ArrLeft, Arr1, Var1 | | | ArrRightVar | | Дописывает после каждого элемента списка Arr1 переменную Var1. | ArrRightVar, Arr1, Var1 | | | ArrHDup | | Горизонтальный дубликат строк в самом Arr1. Каждая строка повторяет прежнее содержимое дважды. JL - ошибка. Портит EBX, EAX. | ArrHDup Arr1 | Можно дублировать звуковые данные. | | ArrRightArr | | Складывает списки построчно, добавляя копии строк-32 Arr2 к строкам Arr1. | ArrRightArr, Arr1, Arr2 | Цикл с макросом VarPlus32. Можно складывать звуковые данные. | | LenSizeArr | | Произведение длины Arr1 на ширину первой строки EAX, EBX=число элементов, ECX=число строк, JL- ошибка. | LenSizeArr, Arr1 | Простейшая функция на основе функции SizeArr32. | | LenElArr | | EAX - общая длина в байтах всех длин элементов списка Arr1, EBX - число строк. Портит EAX, EBX. | LenElArr, Arr1 | На основе макросов StartVR и LenVar. | | SizeArr | | Определяет размер списка: EAX=число элементов, EBX=длина элемента/Len1=(1,2,4,...), JL- ошибка. Портит EAX, EBX. | SizeArr, Arr1, Len1 | | | SizeArr32 | | Определяет размер списка-32: EAX=число строк, EBX=число элементов, JL- ошибка. Портит EAX, EBX. | SizeArr32, Arr1 | Вопреки ожиданиям, сперва идет высота, а потом - ширина, для совместимости с функцией SizeArr. | | ArrSizeComp | | Сравнение размеров списков Arr1 и Arr2. Вых. EAX, EBX - размеры Arr1, JL - ошибка, JZ - равны. | ArrSizeComp, Arr1, Arr2 | Простейшая функция на основе функции SizeArr32. | | ArrSizeCompar | | Сравнение длин строк списков Arr1 и Arr2 строго по одинаковым индексам. Вых. JZ - все совпали. Не портит регистры совсем. | ArrSizeCompar Arr1, Arr2 | На основе сдвоенного списка и функции VarSizeCompar. | | ArrCompar | | Сравнение списка Arr1 с Arr2 путем поиска одинаковых строк по всей длине. Вых. JZ - все совпали. Не портит регистры совсем. | ArrCompar, Arr1, Arr2 | На основе StartVR, VarFindArr32. Создает временный псевдосписок. Ищет совпадения и при различных индексах. | | ArrLineCompar | | Сравнение элементов списка Arr1 и Arr2 строго по одинаковым индексам. Вых. JZ - все совпали. Не портит регистры совсем. | ArrLineCompar, Arr1, Arr2 | Сходна с функцией ArrCompar, но быстрее, так как проходит списки по сдвоенному циклу один раз. | | ArrShablCompar | | Сравнение элементов списка Arr1 и Arr2 по одинаковым индексам. Если строка Arr2 равна заглушке Var2, всегда совпадение. Вых. JZ - все совпали. Не портит регистры совсем. | ArrShablCompar, Arr1, Arr2, Var2 | | | ResPnArr | | Сброс текущих параметров элементов Arr1. EAX, Текущий указатель=Начало данных первого кластера JL- ошибка адреса переменной. Фильтры MsF не меняет. | ResPnArr, Arr1 | На основе макроса ResPn. | | FastArrPos | | [EAX]= адрес элемента списка размером Lndt1 (1,2,4,8), установка M0Pn/M0Lx; Нуждается в инициализации ResPnArr | FastArrPos, Arr1, Lndt1, V1, H1 | На основе двух вызовов функции FastVarPos32. | | FastArrPos32 | | [EAX]= адрес элемента-32 H1 строки V1 списка Arr1 [H1, V1], установка M0Pn/M0Lx; JNZ-ошибка, Нуждается в инициализации ResPnArr | FastArrPos32, Arr1, H1, V1 | На основе двух вызовов функции FastVarPos32. | | SetArrPos | | Устанавливает все элементы списка Arr1 в позицию Pos1 (запись в Pn). | SetArrPos, Arr1, Pos1 | Функцией FastVarPos32 сдвигает позиции всех элементов списка. | | ArrPosDif | | Устанавливает элементы списка Arr1 в позиции Pos1, Pos1/2, Pos1/4... (запись в Pn). | ArrPosDif, Arr1, Pos1 | Вариация функции SetArrPos. Используется в функции Reverber. | | ArrDup | | EAX=Дублирует строки Arr1 | ArrDup, Arr1 | | | Arr1Dup | | Дублирует первую строку Arr1 и записывает ее последней. | Arr1Dup, Arr1 | Удобна для получения стереозвука из моно - добавляет копию 1 канала. | | ArrDelVar | | Удаляет в Arr1 первую строку, совпадающую с Var1. Счетчик найденной позиции в EAX, JNZ - нет вхождения. | ArrDelVar, Arr1, Var1 | Эффективная функция. | | ArrCutInd | | Отрезает из Arr1 строку по индексу Ind. Найденная строка в EAX, JNZ - не найдена. | ArrCutInd, Arr1, Ind | Модификация функции ArrDelVar. | | LeftCutArr | | Разрезает Arr1 на две части. Правую часть Arr1 после LenL2 (=1,2,..) оставляем в Arr1. Левую часть Arr1 перед LenL1 (до LenL2 при LenL2 | LeftCutArr, ArrL, Arr1, LenL1, LenL2 | На основе функции LeftCut32. | | ArrMid32 | | Середину Arr1 после LenL1 и перед LenL2 (длина 1,2...) добавляем в Arr2/0 (при Arr2=0 переписываем в Arr1). | ArrMid32, Arr2, Arr1, LenL1, LenL2 | !!! После какой-то величины уже не режет LenL1=57142800! На основе функции VarMid32. | | SortLenArr | | Сортировка списка Fl1=0 по возрастанию Fl1<>0 по убыванию значений длин | SortLenArr, Arr1, Fl1 | Алгоритм с сужением диапазона, цикл 0,5n^2 раз. После сортировки, исходная сортировка элементов с одинаковыми параметрами (длина) не нарушается. Возможно несколько "вложенных" сортировок по разным параметрам. Последняя - сама важная. | | SortMsF2Arr | | Сортировка списка Fl1=0 по возрастанию Fl1<>0 по убыванию значений фильтра MsF2. Вых. EAX - счетчик пройденных строк, JL -ошибка, JZ - нет обработки. | SortMsF2Arr, Arr1, Fl1 | На основе макроса NextPn, StartPN. Алгоритм с сужением диапазона, цикл 0,5n^2 раз. После сортировки, исходная сортировка элементов с одинаковыми параметрами (значения фильтра) не нарушается. Возможно несколько "вложенных" сортировок по разным параметрам. Последняя - сама важная. | | SortArrAsNum | | Сортировка строк списка Arr1 по найденным с их конца текстовых-32 целых десятичных чисел со знаком, помещаемых в MsF2. Поиск с конца переменной. | SortArrAsNum, Arr1, Fl1 | На основе функций ArrMsF2AsNum и SortMsF2Arr. | | StriSortArr | | Сортировка строк-32 списка как чисел Fl1=0 по возрастанию, Fl1=1 по убыванию. | StriSortArr, Arr1, Fl1 | Перепроверить! На основе функции StriComVar. | | RevSortArr | | Реверсивная сортировка строк-32 списка как чисел Fl1=0 по возрастанию, Fl1=1 по убыванию. | RevSortArr, Arr1, Fl1 | Перепроверить! Удобна для сортировки слов по окончаниям или чисел в виде текста. | | SortLenMx | | Сортировка списка по возрастанию длин с созданием матрицы сортировки | SortLenMx, Arr1, Arr2 | Не дописана! | | ASortLenMx | | Сортировка списка по убыванию длин с созданием матрицы сортировки | ASortLenMx, Arr1, Arr2 | Не дописана! | | ArrMsF2AsNum | | Преобразует из строк списка Arr1 текстовые-32 целые десятичные числа со знаком в числа MsF2. Поиск с конца переменной на глубину Dat32 знаков. | ArrMsF2AsNum, Arr1, Dat32 | Цикл с функцией HexDecS. | | VarRepArr | | Комплексная замена вхождений эл. Arr1 в Var1 на соответст. эл. Arr2. | VarRepArr, Var1, Arr1, Arr2 | Сложная функция основе функции VarInNextPN. Все три входные переменные сбрасываются макросом ResPn. | | VarCompVar32 | | Комплексная замена вхождений в Var1 элемента Arr1 на Var2. Дубликаты более Dup1 раз подряд удаляются. Результат в EAX, EBX - число вхождений, JZ - нет вхождения. Портит EAX, EBX. | VarCompVar32, Var1, Arr1, Var2, Dup1 | На основе цикла по макросу StartVR с функцией FixArr32. При Dup1=0 все вхождения удаляются из результата. При Dup1=1 удаляются вхождения подряд, кроме первого. Удобно, если нужно ограничить замены, например, лишние пробелы и т.д. | | ArrLenCompVar | | Комплексная замена вхождений в Arr2 строк Arr1 на Var1/0, если получаемая строка-переменная длиннее Len1. Результат в EAX - число вхождений, JZ - нет вхождения. Портит EAX, EBX. | ArrLenCompVar, Arr2, Arr1, Var1, Len1 | На основе функции VarLenCompVar. Не заменяет, если результат короче предела. | | ArrRepDar | | Комплексная замена вхождений в строки Arr1 первого элемента строки Dar1 на второй. Результат в EAX - число вхождений. EAX=0, JZ - нет вхождения, EAX=-1, JL - ошибка. | ArrRepDar, Arr1, Dar1 | На основе функции VarRepDar. | | VarCompArr32 | | Комплексная замена вхождений в Var1 элемента Arr1 на элемент Arr2. Результат в EAX, EBX - число вхождений, JZ - нет вхождения. | VarCompArr32, Var1, Arr1, Arr2 | Медленная функция на основе функции FixArr32. | | ArrRepA32 | | Последовательная замена в строках Arr1 всех получающихся вхождений списка ArrFr на переменную Var3, Qz1 раз (<1 - все). Портит EAX. EAX=общее число замен, JZ - нет вхождения. | ArrRepA32, Arr1, ArrFr, Var3, Qz1 | На основе функции VarRepN32. | | ArrFromVar | | Добавляем строки в список Arr1 из переменной Var1 по разделителю VarStp | ArrFromVar, Arr1, Var1, VarStp | | | ArrRub | | Разрезает список Arr1 по 1му разделителю VarStp | ArrRub, Arr1, Arr2, VarStp | | | ActiArr | | Активирует Arr1, устанавливая в строках фильтры MsF1 в 1, MsF2 в 0. Вых. EAX - число строк. JL - ошибка. | ActiArr, Arr1 | Максимально быстрая функция. | | ArrSetMsF2 | | Записывает число Dat32 в фильтры MsF2 строк-элементов списка Arr1. | ArrSetMsF2, Arr1, Dat32 | | | ArrSetMsF1 | | Записывает число Dat32 в фильтры MsF1 строк-элементов списка Arr1. Вых. EAX - число активированных строк. JL - ошибка. | ArrSetMsF1, Arr1, Dat32 | | | InversMsF1 | | Инверсия фильтров MsF1 строк-элементов списка Arr1/Dar1. Вых. EAX - число активных строк. JL - ошибка. | InversMsF1, Arr1 | | | MsF1ArrEditGridArr32 | | Добавление к списку Arr2 строк из ячеек Grid-списка (по разделителю Tab32) Arr1 с учетом MsF2 согласно формату ArrFmt. | MsF1ArrEditGridArr32, Arr2, Arr1, ArrFm | ArrEdit не работает!!! На основе функций ArrFromVar32, ArrEdit. Создает новые строки списка из строк GridArr по формату. Если обрабатываются все строки, необходимо предварительно выполнить функцию ActiArr. | | VarFromArr | | Объединяем элементы списка Arr1 через разделитель VarStp или 0. | VarFromArr, Var1, Arr1, VarStp | Цикл с использованием макроса VarPlus. Может теоретически создавать ошибку из-за нецелого шага макроса. | | VarFromArr32 | | Добавляем к 32-разрядной! Var1 32-разрядные элементы списка Arr1 через разделитель VarStp или 0. | VarFromArr32, Var1, Arr1, VarStp | В цикле с макросом StartVR вызывается VarPlus32. Разделитель добавляется после каждой строки, кроме последней. На основе макроса VarEX4, поэтому, работает только с 32-разрядными переменными. | | VarRightPN | | Добавляет в Var2 правую часть Var1, включая текущие параметры | VarRightPN, Var2, Var1 | | | ArrPlus | | Arr1=Arr1 + Arr2 | ArrPlus, Arr1, Arr2 | На основе макросов StartVR и VarCopy. | | ArrPlusNew | | Arr1=Arr1 + Arr2 | ArrPlusNew, Arr1, Arr2 | | | ArrPlusCleArr | | Быстрый перенос (добавление и очистка) данных в Arr1 из Arr2: VarPlus32 Arr1, Arr2; CleVar Var2. | ArrPlusCleArr, Arr1, Arr2 | В отличие от функции AddArr, только очищает Arr2 без удаления. | | AddArr | | Объединение без копирования: Arr1=Arr1 + Arr2 (VarPlus!); Kill Var2. | AddArr, Arr1, Arr2 | | | ArrToArr | | Быстрая замена с сохранением адреса Arr1: CleArr1, VarCopy Arr1=Arr2, KillVar Arr2. | ArrToArr, Arr1, Arr2 | На основе функции AddArr. | | ArrUniq | | Уникальность элементов: дубликаты удаляются | ArrUniq, Arr1 | | | KeyRead | | Поиск/добавление ключа Var1 к Arr1 и выдача EAX= адр. элемента в Arr2 | KeyRead, Arr1, Arr2, Var1 | | | KeyWrite | | Arr2(Arr1[Var1])=Var2 | KeyWrite, Arr1, Arr2, Var1, Var2 | | | NewMtrOLD | | Создание матрицы с ключами -копией Arr1 | NewMtrOLD, Arr1 | | | NextMtr | | Цикл матрицы с выводом адресов элемента-списка по позиции Pos1: EAX-значение, EBX-ключ | NextMtr, Mtr1, Pos1 | | | PicSelect | | При сходстве пикселя в Arr2 и RGB1 добавляет мягкую прозрачность в симметричном Arr1, зоны непрозрачности игнорирует. | PicSelect Arr1, Arr2, RGB1 | На основе сдвоенного цикла и функций DiffRGB и MixARGB. | | InterArr | | Дописывает в список переменные длиной LnStr1 (1,2,4) со значениями в интервале от Nfrom до Nto с целым положительным шагом Step1. | InterArr, Arr1, Nfrom, Nto, LnStr, Step1 | | | InterArr32 | | Дописывает в список переменные длиной 4 со значениями в интервале от (включительно) Nfrom до Nto с целым положительным или отрицательным шагом Step1 и общим числом Qlt1. При Qlt1<0 - неограниченно. Вых. EAX=количество дописанных переменных, EBX-значение последнего числа, которое уже удовлетворяет условию. | InterArr32, Arr1, Nfrom, Nto, Step1, Qlt1 | Универсальная функция для создания ряда арифметической прогрессии. | | ArrFill32 | | Заливает список (кратный 32!) числом Num32 | ArrFill32, Arr1, Num32 | | | ArrCopyVar | | Заменяет все переменные строк на Var1. Если переменной нет, создает ее. | ArrCopyVar, Arr1, Var1 | | | ArrCutVar32 | | Дописывает в список Arr1 из Var1 нарезку строк-32 длиной Len32 (1,2,...) | ArrCutVar32, Arr1, Var1, Len32 | На основе маркросов StartVR, VarEAX4, AddEl. По циклу проходит переменную и добавляет строки в список. | | ArrCompatCopy | | Копирование элементов-32 переменных одинаковой длины списков Arr1 и Arr2 строго по одинаковым индексам. Не портит регистры совсем. | ArrCompatCopy, Arr1, Arr2 | На основе сдвоенного списка и функции VarCompatCopy. Быстрое копирование одинаковых списков. | | CreArr | | Дописывает в список Arr1 Col1 переменных Var1 со значением Val1 размера Size1 (1,2,4) и его длиной Str1*Size1 | CreArr, Arr1, Col1, Str1, Size1, Val1 | | | CreArr32 | | Дописывает в список Arr1 значения Dat32 размером Str1*Col1. Не портит регистры совсем. | CreArr32, Arr1, Str1, Col1, Dat32 | На основе функции VarPlusQVal32. Модифицированный вариант функции CreArr. | | ArrClonVar | | Дописывает в список Ndup переменных Var1 типа Sng1 | ArrClonVar, Arr1, Var1, Sng1, Ndup | | | ArrEquLen | | Дописывает в список Arr2 длиной, равной длине Arr1 одинаковые строковые переменные Var1/0. При Var=0 - пустые переменные. | ArrEquLen, Arr1, Arr2, Var1 | На основе функции ArrClonVar. | | ArrXEl | | В список Arr1 добавляет Qn1 пустых элементов-переменных. Вых: EAX=адрес последней созданной переменной. | ArrXEl, Arr1, Qn1 | Простейшая функция на основе макроса ArrNewEl. | | FixArr | | Поиск вхождения Arr1 в Var1 по адресу Adr1 | FixArr, Var1, Arr1, Adr1 | | | StruSear3V | | Поиск структуры [Arr1,X,Arr2] в Var1/Var11, с текущих параметров в диапазоне Midl1 байт | StruSear3V, Var1, Var11, Arr1, Arr2, Midl1, VarA1, VarS, VarA2 | | | StruSear4V | | - | StruSear4V, Var1, Var11, Arr1, Arr2, Midl1, VarB1, VarA1, VarS, VarA2 | | | StruSear | | Поиск структуры с текущих параметров Var1 | StruSear, Var1, Arr1, Arr2, Midl1 | | | VarVal | | EAX= Var1 (адрес самой переменной), EBX= адр. Var1 в самом списке Arr1[Ind1] по индексу (0,1,...N). JL - ошибка. Портит EAX, EBX. | VarVal, Arr1, Ind1 | На основе медленного макроса VarPos. Ограничение, если позиция больше длины. Значение данных из получаемого адреса ошибку не дают - могут быть любые. | | ArrVal | | EBX=значение списка по [Ind1, Pos1] EAX=адрес | ArrVal, Arr1, Ind1, Pos1 | | | PastStartArr | | Добавление копии переменной в начало списка | PastStartArr, Arr1, Var1 | На основе 3 вызовов макроса VarPlus. | | PastStartArr32 | | Вставляет на первое место Arr1 переменную Var1/0 типа Sgn1/0, при их отсутствии - создает новую Var1 и тип SgnStr. Вых. EAX - последняя созданная переменная/Var1. JL - ошибка. Портит EAX. | PastStartArr32 Arr1, Var1 | Эффективный сдвиг данных вперед на 8 за один проход цикла макроса StartVR. | | ToArr | | Добавление в конец списка Arr1 копии переменной Var1 | ToArr, Arr1, Var1 | | | ToArr32 | | Добавление в конец списка Arr1 копии переменной-32bit Var1, вых EAX = адр. новой переменной, JL - ошибка. Портит регистр EAX. | ToArr32, Arr1, Var1 | На основе макросов ArrNewEl и VarCopy. Аналог функции ToArr для 32 битных переменных. Некорректные адреса списка и переменных отрабатываются. | | ToArrMs | | Добавление в конец списка Arr1 копии переменной-32bit Var1. Копируются также MsF1, MsF1. Вых EAX = адр. новой переменной, JL - ошибка. Портит регистр EAX. | ToArrMs, Arr1, Var1 | Сходна с функцией ToArr32, но дополнительно копирует фильтры. | | GumArr | | EAX=переменная списка Arr1 по "резиновому" индексу (0,1,...N).EBX=адр. списка Arr1[Ind1] по индексу (0,1,...N). Если Ind1 превышает размер списка Arr1, то он дополняется пустыми строками. | GumArr, Arr1, Ind1 | !!!Глючит на равном месте - при небольшом и фиксированном списке! GumArr На основе функций MaxIndArr, ArrXEl и VarVal. Сходна с функцией VarVal, но, не ограничивает запрашиваемый размер. Удобна для произвольного заполнения списка, когда размер не известен. | | GumArrDat | | Замена без удаления строки-переменной на Dat32 в "резиновый" список Arr1 по индексу Ind1 (0,1,...N). Если Ind1 превышает размер списка Arr1, то он дополняется пустыми строками. Вых. EAX - предыдущие данные. | GumArrDat, Arr1, Dat32, Ind1 | На основе функции GumArr. Простая вставка любых данных на место, где должна быть строка-переменная. Сама старая строка не удаляется, а выводится в EAX. | | GumArrPastVar | | Вставляет копию переменной Var1/0 в список Arr1 по индексу Ind1, раздвигая соседние данные. При превышении индекса над размером, создаются пустые строки. Вых. EAX - вставленная переменная. | GumArrPastVar, Arr1, Ind1, Var1, Sng1 | Увеличивает список и перемещает данные из предыдущих в последующие. | | GumArrRemVar | | Замена переменной в "резиновом" списке Arr1 по индексу Ind1 (0,1,...N). Если Ind1 превышает размер списка Arr1, то он дополняется пустыми строками. | GumArrRemVar, Arr1, Var1, Ind1 | На основе функции GumArr и макроса RemVar. | | GumArrRemDat | | Замена данных единственным числом Dat32 в первой ячейке той же переменной в "резиновом" списке Arr1 по индексу Ind1 (0,1,...N). Если Ind1 превышает размер списка Arr1, то он дополняется пустыми строками. | GumArrRemDat, Arr1, Dat32, Ind1 | На основе функции GumArr и макросов CleVar, VarDat32. | | GumArrCopyVar | | Копирование (вставка) переменной в "резиновый" список Arr1 по индексу Ind1 (0,1,...N). Если Ind1 превышает размер списка Arr1, то он дополняется пустыми строками. | GumArrCopyVar, Arr1, Var1, Ind1 | На основе функции GumArr и макроса VarCopy. | | GumArrPlusVar | | Добавление переменной в "резиновый" список Arr1 по индексу Ind1 (0,1,...N). Если Ind1 превышает размер списка Arr1, то он дополняется пустыми строками. | GumArrPlusVar, Arr1, Var1, Ind1 | На основе функции GumArr и макроса VarPlus32. | | GumArrRem | | Замена (копирование) "резиновых" строк Arr2 на строки Arr1, заданные парами индексов-32 (приемник, источник,..) в VarPs1. | GumArrRem Arr2, Arr1, VarPs1 | На основе функции GumArrCopyVar. | | ArrPlusPs | | Дописывает в Arr2/0 копии строк Arr1 последовательно по номерам позиций из VarPs(N1,N2...Nx). Позиции могут повторяться. При ошибке длины Arr1 или строк-переменных, пишет в Arr2 пустые строки. При Arr2=0 заменяет сам Arr1. | ArrPlusPs, Arr2, Arr1, VarPs1 | На основе функций VarVal и ToArr32. Меняет порядок строк списка. | | ArrPlusDat32 | | Добавление к списку новой переменной, содержащей значение 32 бита Dat32. EAX=адр. добавленной переменной. Изменяет только регистр EAX. | ArrPlusDat32, Arr1, Dat32 | Простейшая функция на основе макросов ArrNewEl и VarEAX4. Удобна, если элемент списка содержит всего один 32-битный символ. | | MtrArr | | Подгон к первому столбцу матрицы новый столбец-список | MtrArr, Mtr1, Arr1 | | | PREDL | | Делим текст Var1 на предложения Arr1 длиной, больше LenMin | PREDL, Arr1, Var1, LenMin | | | VarPlusIndArr | | Добавление к переменной-32 Var1 разделителя Var2/0 и строки Arr1 по индексу Ind1 (0,1,2..). Портит EAX, EBX. | VarPlusIndArr, Var1, Var2, Arr1, Ind1 | На основе функции VarVal. Медленная на длинных списках. | | VarIndArr | | Перезапись переменной-32 Var1 на разделитель Var2/0 и строку из Arr1 по индексу Ind1 (0,1,2..). | VarIndArr, Var1, Var2, Arr1, Ind1 | В отличие от VarPlusIndArr, очищает переменную перед записью. | | VarPsFromArr | | Дописывает в Var1 строки из Arr1 по индексам из VarPs (i0, i1, i2, ...) с разделителем Delim32. Портит EAX, EBX. | VarPsFromArr Var1, VarPs, Arr1, Delim32 | На основе функции VarPlusIndArr. Медленная на длинных списках. | | ArrRemEquSym32 | | Сравнение и замена в строках Arr1 при Flg1=1 совпадающих, при Flg1=0 несовпадающих символов-32 в соответствующих строках Arr2 на Dat32, EAX - число замен. Портит EAX, EBX. JL - ошибка, нет вхождения. | ArrRemEquSym32, Arr1, Arr2, Dat32, Flg1 | На основе сдвоенного цикла и функции RemEquSym32. | | VarFindArr | | Поиск 1-го совпадения переменной Var1 в списке Arr1.Вых: найденный/последний индекс= EAX, адрес= EBX, признак JZ=1 есть совпадение. Портит регистр EAX, EBX. | VarFindArr, Arr1, Var1 | На основе функции VarEqu | | VarEquArr32 | | Поиск 1-го совпадения переменной Var1 в списке Arr1. Вых: найденная/последняя строка-переменная= EAX, адрес строки в Arr1= EBX , признак JZ=1 есть совпадение; Портит регистр EAX, EBX. | VarEquArr32, Arr1, Var1 | На основе функции VarEqu32. Аналогичен функции VarFindArr32, за исключением выхода. Есть возможность модифицировать сам список. | | VarFindArr32 | | Поиск 1-го совпадения переменной Var1 в списке Arr1. Вых: найденный/последний индекс= EAX, адрес строки= EBX, признак JZ=1 есть совпадение. Портит регистр EAX, EBX. | VarFindArr32, Arr1, Var1 | На основе функции VarEqu32. Аналогичен функции VarFindArr и почти аналогичен VarEquArr32. | | VarNextFindArr32 | | Поиск следующей строки за 1-м совпадением переменной Var1 в списке Arr1. При некорректной (пустой) Var1 берем первое значение из списка Arr1. Вых: найденный/последний индекс= EAX, адрес строки= EBX , признак JZ=1 есть совпадение; Портит регистр EAX, EBX. | VarNextFindArr32 Arr1, Var1 | Модификация кода функции VarFindArr32. | | MsF2FindArr32 | | Поиск 1-го совпадения индекса MsF2 в списке Arr1.Вых: найденный/последний индекс= EAX, адрес строки= EBX, признак JZ=1 есть совпадение; Портит регистр EAX, EBX. | MsF2FindArr32, Arr1, Ind1 | Аналог функции VarFindArr32, но для поиска индекса. | | VarFindArrPn | | Поиск 1-го совпадения переменной Var1 в списке Arr1.Вых: позиция (длина)= EAX, адрес= EBX, запись в M0Pn/M0Lx | VarFindArrPn, Arr1, Var1 | На основе функции VarEqu | | ArrRemFirstVar | | Замена 1-го вхождения строк Arr1 в Var1 на первую же строку Arr1 и добавление в Var2. Результат в EAX - вошедшая строка, JZ - ошибка, пустая строка, нет вхождения. | ArrRemFirstVar, Arr1, Var2, Var1 | На основе функции VarRepVar32. Приводит слово к начальной форме, модифицируя окончание. | | ArrInArrMsF2,Arr2,Arr1,Dat32 | | При любом вхождении Arr1 в строку Arr2 вписывает в ее фильтр MsF2 число Dat32. Вых. EAX - число строк Arr2 с вхождениями. JZ - нет вхождений. Портит EAX. | ArrInArrMsF2, Arr2, Arr1, Dat32 | На основе функции ArrInVar32. | | ArrInLowSimpleArrMsF2 | | При любом вхождении Arr1 в преобразованную (SimpleVar32, LowVar) строку Arr2 вписывает в ее фильтр MsF2 число Dat32. Вых. EAX - число строк Arr2 с вхождениями. JZ - нет вхождений. Портит EAX. | ArrInLowSimpleArrMsF2, Arr2, Arr1, Dat32 | Модифицированный усложненный вариант функции ArrInArrMsF2. | | MsF1MsF2Arr | | Запись в MsF1 строки Arr1 результата сравнения 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 - количество выполненных условий. | MsF1MsF2Arr Arr1, Lev1, Flg2 | | | BetweenMsfArr | | Обмен между фильтрами MsF1 и MsF2 строк-элементов списка Arr1. | BetweenMsfArr, Arr1 | | | SapArr | | Поиск/добавление вниз к Arr1 переменной Var1, . Вых: при JZ=1 (есть совпадение): позиция= EAX, адрес= EBX | SapArr, Arr1, Var1 | На основе функции VarFindArrPn. | | SapArr32 | | Поиск/добавление вниз к Arr1 переменной Var1. Вых: адрес совпадения/новый= EAX, индекс= EBX (0,1,2...), JZ=1 есть совпадение. | SapArr32, Arr1, Var1 | На основе функции VarFindArr32. Сходна с функцией SapArr для 32 битных переменных. Отличие - всегда выводит в EAX адрес совпадения/новый. | | SapArr32MsF2 | | Поиск/добавление вниз к Arr1 переменной Var1 с прибавлением Dat32 к MsF2 при совпадениях. Вых: адрес совпадения/новый= EAX, при JZ=1 (есть совпадение): позиция= EBX. Портит EAX, EBX. | SapArr32MsF2, Arr1, Var1, Dat32 | | | SapArrCompVarDat | | Добавление в Arr2 неповторяющихся фрагментов Var1, полученных разделением Var1 по комплексным вхождениям в нее элементов Arr1 с прибавлением Dat32 к MsF2 при совпадениях. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Результат - EAX - число вхождений, JZ - нет вхождения. | SapArrCompVarDat, Arr2, Var1, Arr1, Flg1, Dat32 | В отличие от SapArrCompVar32, прибавляет не 1, а произвольное число. | | SapArrCompVar32 | | Добавление в Arr2 неповторяющихся фрагментов Var1, полученных разделением Var1 по комплексным вхождениям в нее элементов Arr1 с подсчетом совпадений в MsF2. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Результат - EAX - число вхождений, JZ - нет вхождения. | SapArrCompVar32, Arr2, Var1, Arr1, Flg1 | Проверить, не работает, выдает ерунду! На основе функции FixArr32, SapArr32MsF2. Если количество элементов выходного списка велико, может работать долго. | | SapArrCompArr | | Добавление в Arr3 неповторяющихся фрагментов строк Arr2 разделением по комплексным вхождениям в них элементов Arr1 с подсчетом совпадений в MsF2. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Портит EAX, EBX. | SapArrCompArr, Arr3, Arr2, Arr1, Flg1 | Проверить, не работает, виснет! На основе функции SapArrCompVar32. | | SapArrVD32 | | Поиск/добавление вниз к Arr1 переменной Var1 и перезапись 32-битного числа Dat1 в найденной строке в фильтр MsF2. Вых: адрес совпадения/новый= EAX, JZ=1 нет совпадения, JG -совпадение, JL- шибка. | SapArrVD32, Arr1, Var1, Dat1 | На основе функции SapArr32. Позволяет записывать сразу переменную и связанное с ней число (рейтинг). Если искомая переменная уже была в списке, число заменяется на новое. | | SapArrDD32 | | Поиск/добавление вниз к Arr1 переменной, начинающейся с 32-битного числа VDat32 и перезапись 32-битного числа Dat32 в найденной строке в фильтр MsF2. Вых: адрес совпадения/новый= EAX. | SapArrDD32, Arr1, Var1, Dat1 | На основе функции SapArrVD32 (SapArr32). Позволяет записывать сразу два связанных числа - одно в строку, другое число - в фильтр. Если искомое число в переменной уже было в списке, число в фильтре заменяется на новое. Внимание: временно ошибки не выводятся! | | SapMsF2Arr | | Поиск Ind1 в MsF2, найдено - добавление к найденной строке Arr1 переменной Var1, нет - создание новой строки с копией Var1 с MsF2=Ind1 вниз списка. Вых: адрес совпадения/новый= EAX, при JZ=1 (есть совпадение): позиция= EBX. | SapMsF2Arr, Arr1, Ind1, Var1 | Позволяет добавлять переменную в строку с заданным значением рейтинга. | | SapMsF2ArrDD | | Поиск Ind1 в MsF2, найдено - добавление к найденной строке Arr1 числа Dat32, нет - создание новой строки с копией числа Dat32 с MsF2=Ind1 вниз списка. Вых: адрес совпадения/новый= EAX, при JZ=1 (есть совпадение): позиция= EBX. | SapMsF2ArrDD, Arr1, Ind1, Dat32 | Аналог функции SapMsF2Arr для поиска индекса и вставки числа. Позволяет добавлять число в строку с заданным значением рейтинга. | | SapMsF2ArrId | | Поиск Dat32 в MsF2, не найдено- создание новой строки с пустой Var1 с MsF2=Dat32 вниз списка. Вых: адрес строки совпадения/новый= EAX, позиция строки= EBX, (JZ=1 есть совпадение). Портит EAX, EBX. | SapMsF2ArrId, Arr1, Dat32 | Можно использовать в качестве двумерного массива или таблицы - поиск строки по соответствующему ей числу. | | ArrFromCompArr | | Добавление в Arr3 фрагментов строк Arr2 разделением по комплексным вхождениям в них элементов Arr1. Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Портит EAX, EBX. | ArrFromCompArr, Arr3, Arr2, Arr1, Flg1 | На основе функции ArrFromCompVar32. | | ArrMsF1Arr | | Дописывает в Arr2 копии строк из Arr1, если их MsF1>0. | ArrMsF1Arr Arr2, Arr1 | Сходна с функцией QArrMsF1Obj. | | VarWords | | Добавление в Arr2 (с прибавлением Dat32 к MsF2 при совпадениях) фрагментов Var1, полученных разделением Var1 по комплексным вхождениям в нее разделителей из AllDel32. Комплексные вхождения в Var1 "окончаний" - элементов Arr1/0 предварительно заменяются на пробел.Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Портит EAX. | VarWords, Arr2, Var1, Arr1, Flg1, Dat32 | На основе функций VarCompVar32, SapArrCompVarDat. Требуется в три раза больше памяти, чем занимает входная переменная. Разделение текста на слова/предложения с подсчетом их количества. | | ArrWords | | Добавление в Arr2 (с подсчетом совпадений в MsF2) фрагментов из строк Arr3, полученных разделением строк Arr3 по комплексным вхождениям в них разделителей из AllDel32. Комплексные вхождения в строки Arr3 "окончаний" - элементов Arr1 предварительно заменяются на пробел.Найденные вхождения при Flg1=0 не записываются, при Flg1=1 остаются в конце фрагментов, при Flg1=2 записываются, как отдельные фрагменты. Портит EAX. | ArrWords, Arr2, Arr3, Arr1, Flg1 | Разделение текста на слова с отрезанием окончаний и подсчетом их количества. | | DivDatIntoGroups | | Разделение на группы. Поиск значения Val32 с допуском +-Dia32 в фильтре MsF2 строк Arr1. Если найдено - добавляет Dat32 в эту строку. Если нет - создает новую строку, добавляет Dat32 и записывает Val32 в фильтр MsF2. | DivDatIntoGroups, Arr1, Val32, Dia32, Dat32 | | | DivVarIntoGroups | | Разделение на группы. Поиск значения Val32 с допуском +-Dia32 в фильтре MsF2 строк Arr1. Если найдено - добавляет Var32 в эту строку, как в список. Если нет - создает новую строку, добавляет Var32, как в список и записывает Val32 в фильтр MsF2. | DivVarIntoGroups, Arr1, Val32, Dia32, Var32 | | | SupArr | | Поиск, поднятие на 1 место/добавление вниз Arr1 переменной Var1, Max1-максимальный размер Arr1(-1-не ограничен). При совпадении- инкремент MsF2. Вых: EBX=индекс/-1, при JZ=1 (есть совпадение), при JNZ=1 (новая запись/ошибка): EAX=0 | SupArr, Max1, Arr1, Var1 | =1/256+1/1024 Использует функцию ArrDownToVar32. | | MaxCrossArr32 | | Добавляет в переменную =[EAX] наибольшее пересечение строк-32 Var1 и Arr1 (короче целой Var1!); JZ - нет пересечения. | MaxCrossArr32, Arr1, Var1 | | | MaxArrCros | | Максимальное пересечение Var1 в Arr1. Вых. EAX - переменная пересечения, EBX - Индекс (0,1..), ECX - макс. Индекс. JL - нет пересечения, ошибка. Портит EBX, EAX. | MaxArrCros Arr1, Var1 | На основе функции MaxCross32. Переменную в EAX создает всегда, требуется удаление. | | ArrToLine32 | | Разложение 32bit-списка Arr1 в линейную строку физической памяти. Вых. EAX - адр. за картинкой, EBX - длина реальная, байт. | ArrToLine32, Arr1, AdrLine1 | | | ArrToLineBMP | | Разложение 32bit списка-картинки Arr1 в картинку BMP в линейной физической памяти с адреса AdrLn1. Вых. EAX - бщая длина картинки. | ArrToLineBMP, Arr1, AdrLn1 | На основе функций BmpHead и ArrToLine32. | | CondiRep | | Если ячейка меньше DatX1, вставляет в нее Dat02, если нет - Dat01. | CondiRep Arr1, Dat01, Dat02, DatX1 | Можно использовать для условной замены пикселей. | | ArrMixRnd | | Перемешивает случайно Arr1, прибавляя к MsF2 случайные числа в диапазоне RndMax1 с последующей сортировкой строк. | ArrMixRnd, Arr1, RndMax1 | На основе функции FastRnd. Указание диапазона позволяет сортировать строки с ограничением позиций их перемещений. | | ArrMax | | Находит в списке последний элемент. Вых. EAX-переменная, EBX-адр. [-8]. JLE - ошибка. Портит EAX, EBX. | ArrMax, Arr1 | На основе анализа переменной. | | ArrBack | | Находит в списке [последний-Ind1(=0,1,..)] элемент. Вых. EAX=элемент-переменная, EBX-адр. [-8]. JLE - ошибка. | ArrBack, Arr1, Ind1 | Реверсивный счетчик на основе макроса StartRev. | | ArrOverlap | | Из списка Arr1 в ArrN1/0 переносятся элементы, которых нет в Arr2. При ArrN1=0 несовпадающие элементы удаляются. Вых. EAX=количество несовпадений (размер ArrN1), JZ - нет несовпадений. | ArrOverlap, Arr1, ArrN1, Arr2 | | | ArrMinus | | Arr1= Arr1 - Arr2 | ArrMinus, Arr1, Arr2 | | | ArrTop | | Создает квазисписок, содержащий первые Top1+1 ссылок на элементы Arr1. При отрицательных Top1, его значение считается, как процент (Top1/102)+1 от длины Arr1. Вых. EAX= переменная-квазисписок. | ArrTop, Arr1, Top1 | На основе функции Left32. Быстрое получение верхушки списка. Вместо копирования самого списка, копируются только типы перенных и ссылки на них. | | ArrMaxLen | | Находит первую строку с максимальной длиной. Вых. EAX=найденная переменная/0, EBX= длина/-1. | ArrMaxLen, Arr1 | | |
Страница "Списки Arr (одномерные массивы)." обновлена -
|