Массив переменных значений по случайному индексу.

Сверх скоростная обработка строк в CMD интерпретаторе.

[ x ] запретить сбор данных ...

В начало :: Карта сайта :: Быстрый поиск

Авторский сайт ТехСтоп Екб Ру :: Инфоблог

Погода :: Трасса :: Авто :: Радио
Компьютер :: Программы :: Спутники
Электрика :: Диагностика :: Сервис и ТО


Как ушатать BAT / CMD интерпретатор. Горе от ума ))) ...

Сегодня я хочу рассказать, как мне удалось снести с катушек выполнение программного сценария BAT / CMD интерпретатора командной строки Windows 7 - при абсолютно исправном коде ))) ... Дело было - так ... Мне понадобилось нагенерить несколько автоматических строчек случайного, но связанного содержания, из предварительно отселектированных текстовых файлов A B C .txt, содержащих соответственно 190, 253 и 198 строковых записей ...

Конечно, можно было их жестко загнать в локализованные переменные !Axn! !Bxn! !Cxn! связанного режима времени выполнения SetLocal EnableExtensions EnableDelayedExpansion - прямо внутри кода скриптового сценария ... Но - не в этот раз : лень надавила на кнопки нейронов ума, и заставила мозг придумать более изящное решение опроса строк текста и заполнения ими - переменных ... Единственной виртуальной рабочей конструкцией, в этом случае, является - массив ...

В BAT / CMD массив не задаётся явной командой, представляя из себя последовательность данных, сгруппированных по имени переменной и её порядковому индексу ... Соответственно, заполнение массива - идет по счётчику и в цикле ...


REM Инициализируем счётчик ... 
	SET Ai=0 
REM Запускаем цикл опроса ... 
	FOR /F "tokens=*" %%A IN (A.dat) DO (
REM Для каждого шага итерации - увеличить счетчик ... 
		SET /A Ai+=1
REM Инициализировать переменную по индексу счётчика и заполнить значением ... 
		SET "mAst[!Ai!]=%%A"
REM Продолжить шаги итерации - до последней строки в файле ... 
)

Массив успешно создан и удобно расположился в оперативной памяти ... Минимум кода в скрипте ... Максимум удовольствия ))) ... Следующий этап - взять случайную строку и вставить ее в предложение, то есть - получить рандомные слова по индексу массива слов ...

!Ai! - переменная уже знает количество всех строк в массиве ...
SET /A RndA=!RANDOM! %%!Ai! +1 - вот это уже сложная конструкция ))) ... ключ /A побуждает установщик SET вычислить случайное значение !RANDOM! , в диапазоне ограниченном значением !Ai! (190) , делением с остатком %% и всегда больше нуля - параметр +1 ... Такая вот сложнейшая команда - делает простейшую вещь - генерирует случайный индекс строки в файле, полное содержимое строк, которого - заранее неизвестно и в любое время - может быть произвольно модифицировано, без последствий на будущие вычисления ...

Это - очень хорошо ... Плохо - другое : не получается получить значение массива A строки !mAst[!RndA!]! - по случайному индексу ... Нет, реальное значение переменной !mAst[5]!= пожалуйста, а виртуальное - извините ))) ...
mAst - это имя переменной, кодирующее сокращение понятия : массив A строка ...

При этом, метод опроса переменных массива, с переменным индексом, в цикле - остаётся работоспособным ...
Команда FOR /L %%K IN (старт, степ, стоп) DO ... - в качестве шага точки может принять - и переменное значение ...
И, вот в этом месте, я допустил ужасную ошибку ... Понимая, что : зная значение виртуального рандомного индекса, чтобы узнать соответствующую ему строку - мне незачем перебирать весь ряд, от 0, +1, и до !RndA! ...
Например, если !RndA! =47 ... то мне нужно опросить диапазон от !RndA! -1 до !RndA!, с обычным шагом = 1 ... (46,1,47) ... Таким образом, достигается - небывалое ускорение обработки программного кода ...


REM Инициализируем переменную начала итерации цикла ... 
	SET /A Stt=!RndA!-1
REM Извлекаем из массива случайную строку по рандомному индексу ... 
	FOR /L %%K IN (!Stt!,1,!RndA!) DO SET OutA=!mAst[%%K]!

Используем полученное слово / строку !OutA! - по требуемому назначению ... Описывать, этот процесс, дальше - уже неинтересно ; теперь - это обычная переменная с фиксированным значением, как a=5 или b=world ))) ... Интересен, был - лишь факт определения её значения ...

Теперь, расширяю секцию кода, чтобы получить четыре случайных слова из списка ... И, саму секцию - повторяю ещё трижды ... А - вру ... четырежды ... Таким образом, имеется ...
три массива A B C, общей численностью 641 строка + ещё массив D на 160 индексов = всего 801 вариант ...
Четыре счетчика ... Четыре перезаписываемых рандомных числа и 16 фиксированных выходных словоформ ... При этом, чудесным и замечательным свойством этой организации текстового генератора является то - что входные списки слов можно изменять произвольным образом ... Менее 1000 переменных, что для компьютера - не должно являться большой проблемой, тем более, явно указав сокращённый диапазон опроса цикла, по идее - должна высвободиться куча памяти и процессорного времени ...

Первые испытания проходили через запуск с флешки и до третьей попытки показывали валидные результаты ... Но, как только значение вывода алгоритма увеличилось до 10 ... А, к слову сказать - планировалось сгенерировать 1000 файлов по 4 предложения ... То, уже на первой десятке - начались неустойчивые сбои в работе генератора фраз, проявляемые, как : продолжение работы кода на экране, но без записи выходных файлов на флеш ...

Первое мнение, было : флешка не успевает за сверх скоростной обработкой интерпретатора CMD и - отваливается ... Тогда - генератор был перенесён на современный высоко скоростной SSD диск, эксперименты были продолжены, но - с тем же неадекватным и непрогнозируемым результатом ... При каждой следующей попытке могло быть записано 10, затем 6, в следующий раз 35 файлов, и далее - происходил срыв / отказ записи файлов на диск, без любых уведомлений о неисправности ))) ...

Тогда я разбил алгоритмы A B C D генерации - по отдельным скриптам и сделал один общий стартующий синхронизирующий файл, который каждый раз открывал скрипт на исполнение - в отдельной новой копии CMD, с завершением, и повторной загрузкой соответствующего массива - каждое следующее открытие ... Таким образом, я добился распределения и разделения выделяемой памяти новым копиям запускаемых сред CMD интерпретаторов и более устойчивой их работы, с некоторым естественным падением в скорости обработки данных ...

Единственной причиной отказов - я предполагал сбои в самом BAT / CMD интерпретаторе : либо он не успевал обрабатывать таблицы ссылок на переменные, либо - не успевал устанавливать селекторы регистров вслед за неожиданно быстрой обработкой CPU ... Поэтому, сам код скрипта - работал на экране, а зависимости, связанные с файловой системой ввода / вывода - отваливались ...

Ранее - я никогда не задавался вопросом, насколько принципиально большая разница между DOS и CMD окном командной строки, в количестве переменных, в объёме выделяемой оперативной памяти, во времени тайм-аутов работы с драйверами дисковой системы ... Думаю, что копать нужно - в этом направлении ... Однако, разделив цельный алгоритм на логические части - общая работоспособность была восстановлена, и ожидаемый результат - получен тютелька в тютельку ))) - так, как это и было запрограммировано ...

Но, именно, столкнувшись с таким нестандартным поведением - я в принципе узнал про неочевидное поведение команд CMD, о котором расскажу в следующей статье ...

Список всех страниц, раздел computer : смотреть онлайн бесплатно, интересное - надо посмотреть ...


Диагностика автомобиля.

Автодиагност визитка, компьютерная диагностика двигателя автомобиля, грузовика. Отечественные и импортные ... Быстрое чтение кодов ошибок DTC ... K-Line. ELM 327. ОБД. EOBD. MOBD. USA OBD. JOBD ... Рекомендации ... Подробнее ...

computer, bat-cmd-fast-algorithm. QR Code ссылка, куар код кюар.


Уголок автолюбителя ... Авто транспорт ... Информация ... диагностика неисправностей двигателя ... Интернационал, International ... Альфа Ромео, Alfa Romeo ... DAF [CDP trucks] ... CF [65, 75, 85] ... LF [45, 55] ... XF [95, 105] ... Другие машины и услуги ...


Популярные ссылки.

Сухой фен. Дым. Глохнет. Причины. ... Плохой запуск отопителя - что смотреть. Топливо. Свеча накала. Сеточка. Заз ...

М7 в г. Москва, Владимир, Н. Новг ... Москва, Владимир, Ниж. Новгород, Чебоксары, Казань, Наб. Челны, Уфа. Прогно ...

AutoTech, про-интеллектуальный ав ... AutoTech. Ведомый поиск неисправностей по призакам. Звуковая идентификация ...

Тангетка Си-Би рации. Ремонт кабе ... При неисправности кабеля тангетки Си-Би рации при ремонте нужна схема или р ...

М2 в г. Москва, Тула, Орел, Курск ... Москва, Подольск, Тула, Орел, Курск, Белгород, Харьков. Прогноз погоды на т ...

На трассе Р-254 как погода от Янд ... Как с погодой на магистрали Р-254, альтернативный прогноз от Яндекс. Сайт л ...

Как настроить осциллограф для изм ... Странный выбор подхода к настройке осциллографа - говорить о частоте сигнал ...


Новости РУ СМИ, сводки.

2023-12-17 ...

... Согласно результатам клинических исследований, эти препараты - не только помогают похудеть, но и снижают шансы развития болезней сердца и почек ...

2023-12-08 ...

... Эксперты обнаружили, что российский персональный компьютер RS-Line, лидирующий в реестре отечественных комплектующих Минпромторга, фактически собран - из импортных компонентов ... Материнская плата от завода Элпитех и SSD накопитель от GS Group - отсутствуют в компьютере ... Однако, уже тысячи компьютеров RS-Line уже были поставлены в государственные учреждения, и общая сумма госзаказов на эту модель превысила 100 миллионов рублей ... Представители Минпромторга заявили, что будет проведена проверка в отношении компании-производителя Life Tech ...

2024-01-11 ...

... Wi-Fi 7 поддерживает технологию Multi-Link Operation (MLO), которая позволяет устройствам обеспечить максимальную скорость передачи данных до 40 Гбит/с, что почти в пять раз выше, чем у предыдущей версии ... Wi-Fi 7, одновременно работая в трёх диапазонах 2,4 ГГц, 5 ГГц и 6 ГГц предназначен для увеличения пропускной способности, сокращения задержек и повышения надёжности беспроводной связи ...

Смотреть все самые интересные новости последних дней, недели, месяца ...

Новые страницы сайта.

18:36 26.01.2024 Как настроить осциллограф для измерения. ... IndexNow : Y183626012024 , B183626012024 ...

5:00 06.01.2024 Sat-Gen-TLE-v5 скрипт генератор. Мониторинг спутников.

4:54 06.01.2024 Спутниковые данные. Спутники CubeSat и PicoSat.


Кратко полезное.

ai summate.it ...

... быстро суммаризируйте веб-статьи ...

Подробнее : Каталог ИИ инструментов, ассистентов и помощников ...

ai withpoly.com ...

... создание текстур ... создавайте 3D-материалы с помощью искусственного интеллекта в бесплатном онлайн-редакторе или пользуйтесь поиском в нашей растущей библиотеке сообщества ...

Подробнее : Каталог ИИ инструментов, ассистентов и помощников ...

кино фильм 2002 Машина времени ...

Что посмотреть, кино, фильмы для событий, происходящих вне времени ... Бесконечность, время и пространство ... Реинкарнация ... Прошлая и будущая жизнь ... Измерение ... Телепортация и путешествия сквозь и вне времени ...

2002 Машина времени [ 7.3 ] ...
Гай Пирс, Саманта Мамба, Орландо Джонс ... История ученого, который изобретает устройство, позволяющее путешествовать во времени ... Он отправляется в далекое будущее, где сталкивается с потрясающими изменениями в обществе ...


СоцСети, вход моя страница.

Cоциальная сеть, моя страница, поиск, вход без регистрации, знакомство без пароля, войти бесплатно ...

Разрешенные соцсети в РФ : ... VK, вконтакте, общение и поиск друзей ... ОК, одноклассники, найти старых друзей по школе, учёбе, службе и работе ... t.me, telegram, система мгновенного обмена сообщениями, текст, голос и видео ... Youtube, популярный видеохостинг ...

Запрещенные соцсети в РФ : ... Твиттер X, сервис микроблогов и социальная сеть ... Фейсбук, общение с друзьями, родственниками и сослуживцами по работе ... Инстаграм, сеть обмена фото видео для мощных и уверенных, в себе, людей ... [инстасамцов и инстасамок] - шутка ))) ... ЛинкедИн , сеть профессиональных контактов по работе, деловой имидж в бизнесе ...


music video ... музыка класс ...

...

Everybody - Dj Bobo.

...

Happy Nation - Ace Of Base.

...

Метко - Гости Из Будущего.

песнь песней онлайн ... до скольки можно слушать музыку в квартире ...

...

Im In Love - John The Whistler.

...

Дождливый Этюд - Трофимов.

...

Trust Me - L.B.One, Laenz.

скачать песнью ... музыка онлайн бесплатно в хорошем ...

...

La Louze - Shanguy.

...

Friends - Marshmello, Anne-Marie.

...

Мне пох - Клава Кока, Morgenshtern.


techstop-ekb.ru © ТехСтоп, Екатеринбург, Россия. 2024.