Главная Описание Функции Вакансии Контакты Заказ функции

Функции AI (Artificial Intelligence).

Ассоциативные списки Ddar.

Текст 32 бит (юникод UTF-32LE).

Графика.

Пиксельная графика.

Пиксельный процессор 128 бит.

Графика сложная.

Видео.

Звук.

Интернет.

Служебные.

Специальные.

Время и дата.

Математические.

Контроллы.

Файлы.

Ресурсы, буфер обмена.

Переменные.

Пазлы (динамические базы данных).

Списки Arr (одномерные массивы).

Списки2 Dar (двумерные массивы).

Списки высоких измерений.

Макросы.

Функции VendorPint.

Функции PintLang.

Функции TulkoPint.

Функции VideoPint.

Функции PhotoPint.

Функции VardPint.

Функции SmartPint.

Функции WavePint.

Функции DataBase.

Списки 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 (одномерные массивы)." обновлена -

Бесплатная консультация:

Позвоните нам по телефону: +7 499 677-1694
или введите короткое сообщение
Списки Arr (одномерные массивы). | © 2008-2015 | Все права защищены. | Создание сайта WebOptimal |
При полном или частичном использовании материалов сайта ссылка на http://PowerIntellect.com обязательна.