Сделал инструкцию по настройке прокси в VLC (копия) в PDF.
Попросили, да соорудил, хуле, не жалко.
Сделал инструкцию по настройке прокси в VLC (копия) в PDF.
Попросили, да соорудил, хуле, не жалко.
Написал друг, оказывается, новый Tor-браузер не работает под Windows 7
Нашел решение тут
Версия для Win32 копия
Версия для Win64 копия
На Win7 x64 работает:
Решил посмотреть телевизор, чтоб быть в курсе, чего там кремлевская пропаганда врет, оказывается, проще всего сделать дырку в ГОРФ через прокси. Недолгим гуглением выяснил, что в прокси умеет VLC. Оставлю тут инструкцию по настройке прокси в VLC, от собственного склероза в основном.
1. Заходим в Инструменты —> Настройки…
2. Переключаем режим настроек из Простые во Все
3. Слева раскроется дерево настроек, нажимаем на пункт Ввод/кодеки, причем на сам пункт/узел, раскрывающиеся ветви узла нас не интересуют.
8.
Скачать инструкцию с catbox.moe в PDF
Скачать инструкцию с Mega.NZ в PDF
При отсутствии почтового клиента.
EML и иногда MSG, это форматы, в которые сохраняются сообщения электронной почты, если надо выгрузить их из почтового клиента или прямо с сайта (google.mail, например, так умеет). EML одобрен стандартом RFC
Формально, вообще это текстовый файл, в котором кроме текста сообщения, присутствуют заголовки и могут присутствовать вложения, закодированные для передачи в формате BASE64
Обычно, формат EML поддерживают почти все почтовые клиенты, лишь Вовчик Воротов решил выебнуться и в Аутглюке запилил собственный формат MSG, но что делать, если файл есть, а почтового клиента нет?
Нашел прикольную маленькую программку CoolUtils Mail Viewer, небольшая, бесплатная, работает, начиная с Windows 7, на XP не тестировал, но свои задачи делает, можно посмотреть файл EML, отдельно прочесть текст, отдельно просмотреть и выгрузить вложения, или посмотреть сообщение в сыром виде, чтобы, например, прочесть и проанализировать заголовки.
Автор: Kuzia_DSL
Совместимость: Windows 98 — XP x86
Разбирая старые архивы на сервере нашел прикольную карточную мультиигру.
— Албанский дурак
— Армянский дурак
— Безкозырный дурак
— Большой дурак
— Верю не верю
— Двухкозырной дурак
— Дорожный дурак
— Занудный дурак
— Козырной дурак
— Королевский дурак
— Круговой дурак
— Магаданский дурак
— Наваленный дурак
— Невидимый дурак
— Оборотный дурак
— Отбойный дурак
— Очковый дурак
— Переводной дурак
— Переводной дурак 2
— Погонный дурак
— Подкидной дурак
— Покерный дурак
— Простой дурак
— Пустой дурак
— Трешка
— Чешский дурак
— Чукотский дурак
— Японский дурак
— Безик
— Бура
— Восьмерки
— Девятка
— Деберц
— Домино
— Кинг
— Лото
— Марьяж
— Осел
— Очко
— Пикет
— Покер
— Полиньяк
— Пропущенка
— Пьяница
— Сапер
— Терц
— Тузату
— Ураган
— Червы
— 31
— Пирамидка
— Дюжина
— Ближайшая судьба
— Чатарунга
— Множественные параметры настроек, количество, стиль и интеллект игроков
— Возможность играть с реальными игроками по сети.
— Лекарство (есть в комплекте, 00.REG+любой код для регистрации)
— Лицензия: SHAREWARE, но автор исчез, так что удовольствия никто не испортит.
Возможно, слетели настройки BIOS (вернулись к дефолтным), обычно тогда при загрузке сразу выбрасывает в BIOS, если не выбрасывает, а появляется синий экран, на котором ругаются на ACPI: «The BIOS in this system is not fully ACPI compilant», и, возможно ошибка с кодом STOP:000000A5
то в BIOS надо зайти и проверить:
1. Security --> Secure boot menu --> Secure boot
установить в Disable
, сохранить (F10), перезагрузиться, войти в BIOS опять.
2. Boot --> Launch CSM
выставить в Enabled
. Cохранить (F10), перезагрузиться, войти в BIOS опять.
3. Advancend --> OS Selection
выставить в Windows 7
. Cохранить (F10), перезагрузиться.
Пример синего экрана:
1. Shred для Windows (копия)
2. Устранил финальный недостаток SHRED под Windows в BAT-файле (копия)
3. Random Renamer (копия)
В [2] описал недостаток утилиты shred
, а именно: затирая файл она никак не меняет его имени, потому, если вы shred‘ом удалили файл, например, с именем Путин бомба взрыв чеченцы.doc
, содержимое файла затрется, а название останется.
Впрочем, там же описал недостаток и получения случайного имени файла стандартными средствами BAT/CMD: Имя временного файла весьма характерное, при анализе диска будет видно, что кто-то скриптом пользовался. Как сделать нормальные случайные имена файлов в CMD (вида lfcx16.tmp
, например) без внешних утилит, я пока не понял.
Впрочем, да, без PowerShell или JS/VBS стандартными средствами CMD/BAT получить нормальное случайное имя файла сложно, так что написал простенькую утилиту Random Renamer [3], которую, впрочем, писал немного для другого, но в [3] обещал пример, как ее можно использовать со shred
в BAT-файле.
1. Отключаем режим вывода команд:
@echo off
2. Проверяем, чтобы в первом параметре BAT-файла были указаны маска или имя файла, иначе насерет в консоль ошибками и будет некрасиво:
IF "%1" EQU "" goto paramerr
3. В конце BAT-файла дописываем метку :paramerr
и вывод сообщения об ошибке:
:paramerr
echo First parameter must be file name or file mask!
echo e.g. rrshred.bat *.txt
echo e.g. rrshred.bat text.txt
4. Генерируем имя для списка файлов, которые будут переименованы и обработаны shred
:
set RLST=%TEMP%\%RANDOM%.%RANDOM%
5. Переименовываем файлы в текущем каталоге Random Renamer’ом и отправляем вывод RR в список файлов:
rr -m %1 -v >%RLST%
где:
-m %1
— задание маски переименуемых файлов
-v
— включить вывод процесса переименования
Вывод производится на STDOUT
, потому перенаправляем его во временный файл (>%RLST%
).
Пример содержимого файла (X:\Temp\15158.18655
):
Rename files...
Z:\Test1.txt --> 1.txt --> tuz3v4t3.ovw OK.
Z:\Test2.txt --> 2.txt --> npk5b7jn.q12 OK.
Z:\Test3.txt --> 3.txt --> sqtn63cl.dwa OK.
Z:\Test4.txt --> 4.txt --> m371e448.q12 OK.
Found files: 4
Renamed files: 4
Error files: 0
6. В цикле вытаскиваем имена переименованных файлов из файла-списка:
FOR /F "tokens=5,5 delims= " %%i in (%RLST%) do ( [внутри цикла] )
Справка по команде FOR BAT-файла (копия в PDF)
Внутри цикла:
1. Вызываем shred
для каждого файла из списка:
shred -n 3 -z %%i
где:
-n 3
— затереть случайными данными файл в 3 прохода
-z
— сделать дополнительный проход, затерев содержимое файла нолями (символом с кодом 0x00h
)
2. Удаляем файл:
del %%i
После цикла затираем и удаляем сам файл со списком файлов, имя которого в %RLST%
:
shred -n 3 -z %RLST%
del %RLST%
exit /b
Команда exit /b
завершает работу BAT-файла, параметр /b
указывает, чтобы по выходу из BAT-файла, командный процессор не был бы закрыт.
Ниже в BAT-файле будет идти метка :paramerr
@echo off IF "%1" EQU "" goto paramerr SET RLST=%TEMP%\%RANDOM%.%RANDOM% rr -m %1 -v >%RLST% FOR /F "tokens=5,5 delims= " %%i in (%RLST%) do ( shred -n 3 -z %%i del %%i ) ::remove list of files shred -n 3 -z %RLST% del %RLST% exit /b :paramerr echo First parameter must be file name or file mask! echo e.g. rrshred.bat *.txt echo e.g. rrshred.bat text.txt
%PATH%
, например, C:\Windows
.rrshred.bat *.txt
— затрет и удалит файлы *.txt
в текущем каталоге.
Блин, в Windows выше XP старая утилита Хваталка перестала работать, пришлось искать что-то более новое. Нашел. Называется Quick HTML Color Picker
Процесс захвата цвета
Да, кусочек рубашки Сергея Минаева 🙂
Захватывать цвет можно и с видео, при нажатии кнопки захвата, программа просто тормозит экран, а по клику снова его отпускает.
Для начала захвата цвета надо нажать кнопку Pick Color. Если стоит галочка copy automatically, то в буфер обмена скопируется HTML-код цвета, например, #808080
.
Совместимость: Windows 7 — Windows 11
Скачать с Mega.NZ
Официальный сайт
Уже поднимал этот вопрос здесь (копия), в общем, нативного решения не нашел, написал простенькую утилиту Random Renamer.
Random renamer (rr), this program rename files to random names
v 0.0.1b (L) ChaosSoftware 2023.
Использование: rr.exe [параметры] | -h
-h
— помощь
-m <mask>
— Маска файлов для переименования. Параметр обязательный.
Или используйте параметр -r
для переименования только каталогов.
[-a] <номер>
— задать алфавит для генерации случайного имени, значение по умолчанию 0
[-d]
— стартовая директория, по умолчанию — текущая
[-l] <число>
— длина имени, по умолчанию 8
[-r]
— переименовывать директории
[-s]
— включая подкаталоги
[-v]
— отображать процесс на экране
[-x] <число>
— длина расширения, по умолчанию 3
, каталогам расширение не присваивается.
Алфавиты:
0: abcdefghijklmnopqrstuvwxyz0123456789
1: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
2: ABCDEF0123456789
3: abcdef0123456789
4: 0123456789
5: abcdefghijklmnopqrstuvwxyz
6: ABCDEFGHIJKLMNOPQRSTUVWXYZ
По умолчанию: 0
Положить бинарник в один из каталогов %PATH%
, например, в C:\Windows
и пользоваться.
Потом сделаю пример, как его со shred
‘ом в BAT/CMD использовать.
Деревня укрылась от Майкрософт
Туда совершенно случайно попал
Один покупатель старинных виндов,
Он их для Билл Гейтса повсюду искал,
Не мог он не удивиться
Хозяйке старого ноутбукА,
Красивая с виду девица
Откуда в этой глуши она?
А? А? А?
Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
Девица не спускала с них свой очень странный взгляд,
Они давно висят!
Но нет, неподкупна хозяйка была,
Винды отказалась она продавать,
И на ночь оставила гостя она
Свою предложила мужчине кровать.
Но только она заснула,
Тихонько дверь притворив за собой
В гостиную прошмыгнула
Фигура гостя во тьме ночной.
Ой, ой, ой
Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
И гость не отрывал от них свой сисадминский взгляд,
Они давно висят!
Не сразу в винде неисправность нашел,
Лишь только компьютер перезагрузил,
Обратно он в спальню хозяйки пошёл,
Мол, древнюю вещь ото сна пробудил
В ответ она захрипела
Был дикий ужас в её глазах
Винды грузились — она старела,
Пока не превратилась в прах!
Ах, ах, ах!
Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
Девица не спускала с них свой очень странный взгляд,
Они давно висят!
Понадобилось, нашел вот. Пост от склероза и для бэкапа.
Задача, которую мне поставил клиент, была такая — преобразовать бинарный файл в текст, который можно распечатать и переслать по почте. Чтоб его можно было сканером распознать, и обратно в бинарный файл преобразовать. Ну очень плохо ходят флэшки, и тем более, криптостойкие донглы промеж границ из-за Хуйла, сами понимаете.
Пример тестового бинарного файла (в Linux):
В Windows:
Понятно, что напечатать это нельзя, для распечатки надо преобразовать бинарный RAW-формат в что-то удобопечатоемое, например в строки, содержащие шестнадцатеричные цифры:
EA 38 B6 C1 18 1A 4F B3 5F 81 B7 A4 1B 50 89 18 B3 0B 24 27 36 59 57 D0 3A 78 1C 3E D6 F2 27 01 13 4B 54 65 6E 44 61 23 7D D4 ED 60 CE 8E C1 A2 58 45 BB 35 84 A7 69 28 D4 09 5F 99 F5 27 CA 30
В Linux есть сразу несколько инструментов, позволяющих выполнить дамп файла в набор шестнадцатеричных значений, причем «из коробки». Не зря же эта ОС изначально писалась программистами для программистов.
Кратко ознакомиться с этими инструментами можно здесь:
Convert Binary Data to Hexadecimal (оригинал статьи на буржуйском)
Преобразование двоичных данных в шестнадцатеричный формат (Перевод на русский, PDF)
Я воспользовался утилитой hexdump
, и написал небольшой скрипт, который при вызове его с параметром, содержащим путь к файлу, создает в каталоге с оригинальным файлом файл имя_оригинального_файла.dump
, который содержит шестнадцатеричное представление исходного файла:
dumpfile <имя_файла>
Основной алгоритм укладывается в одну строку:
cat $1|hexdump -e '27/1 "%02X " "\n"' >$1.dump
1. Читаем файл, переданный на вход скрипта командой cat
.
2. Передаем в pipe (|
) данные hexdump
‘у
3. Скидываем вывод (>
) в файл $1.dump
В винде, как обычно — в таких случаях все через жопу, слава Ктулху, нашлись умные люди, которые все сделали за меня на BAT/CMD и доступном в системе JScript.
Совместимость — начиная с Windows XP
HEXDUMP [/Опция [Значение]]...
Записывает содержимое стандартного ввода в шестнадцатеричном виде в стандартный вывод, по 16 байт на строку, используя следующий формат:
ООООООО ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ААААААААААААААААА
где:
0000000
= шестнадцатеричное смещение в пределах файла
XX
= шестнадцатеричное значение байта
AAAAAAAAAAAAAAAA
= байты в формате ASCII (управляющие коды и не-ASCII в виде .
[символ точка])
Вывод кодируется как ASCII, каждая строка завершается символом CarriageReturn — перевод строки.
Поведение можно изменить, добавив любую комбинацию следующих параметров:
— /I InFile
— ввод из InFile
вместо стандартного ввода
— /O OutFile
— вывод в OutFile
вместо stdout: — перезаписывает InFile
— /NA
— отключить вывод ASCII-символов.
— /NO
— отключить вывод смещений
— /R
— Необработанный шестнадцатеричный код в одной строке без пробелов между байтами.
— /LF
— LineFeed как признак конца строки (UNIX-формат) вместо CarriageReturn LineFeed (по умолчанию, формат Windows)
— /NL
— без разделителей строк, весь вывод в одной строке без разделителей строк
— /U
— вывод в кодировке Unicode с BOM (UTF-16)
— /V
— Вывести информацию о версии
— /?
— Вывести эту справку
HEXDUMP.BAT
версии 2.1
был написан Дэйвом Бенхамом.
и поддерживается на https://www.dostips.com/forum/viewtopic.php?f=3&t=8816
Вывод в файл (пример):
hex_dump.bat /I test.temp /O test.temp.dump /NA /NO
Вывод на консоль:
hex_dump.bat /I test.temp /NA /NO
Пример вывода на консоль:
60 ab 2b b8 4a 3f 0d 91 a0 a4 09 f0 8f 4b 51 95 3a 22 1b 0e 5b 6d d0 3f 80 96 c5 22 98 dc 4a 2b 89 38 52 96 42 c0 ab 04 c4 8e b8 87 dd 7c 4a b2 e1 6a b1 c2 30 66 82 54 21 5a 40 a2 bb f8 19 89
Внезапно, есть.
Это команда type
.
Использование:
type <путь_и_имя_файла>
Формат командной строки:
TYPE [диск:][путь]имя_файла
Примеры: type /?
— отобразить подсказку по использованию.
type mytextfile.txt
— вывести на экран содержимое текстового файла mytextfile.txt
текущего каталога.
type mytextfile.txt | more
— вывести на экран содержимое текстового файла mytextfile.txt
в постраничном режиме.
type mytextfile.txt > D:\newfile.txt
— перенаправление вывода команды type
в файл, т.е. копирование текстового файла mytextfile.txt
в текстовый файл D:\newfile.txt
.
type bigfile.iso > nul
— вывод файла на фиктивное устройство nul
, что эквивалентно просто чтению заданного файла.
При выводе на экран нетекстовых файлов, байты, содержимое которых представлено неотображаемой частью таблицы ASCII (0x00 – 0x1F
) интерпретируется как служебные символы, что выражается в непредсказуемом перемещении курсора, выводе звука, очистке окна и т.п.
Совместимость: DOS 6.x и выше.
Понадобилось в одном из офисов массово обновить винды.
1. Теперь пакет с сайта не скачать с российских IP.
2. Не установится, если обнаружит российский IP при запуске, надо физически отключать интернеты, выдернув сетевой кабель из компа.
Понятно, в связи с чем.
На форумах (дурацких) люди (дурацкие) говорят, что последний пакет обновлений грохает русскую винду, даже если предыдущие и следующие условия соблюдены. Все работает, проблем не возникло, проверено 15 раз.
Как ответить на вопросы правильно, думаю, догадаетесь сами.
И да, минутку надо подождать, после появления второго окна (на совсем медленных ведрах лучше две).
Скачать обновление (последняя версия)
Последняя довоенная версия (копия), если кому надо для успокоения души. Ключик спрашивать лично в Телеграме, вате не дам.
Про shred в версии под винды, рассказывал здесь (копия)
И рассказал там про фатальный недостаток утилиты, затирая и удаляя файл она никак не меняет его имени, потому, если вы shred
‘ом удалили файл, например, с именем Путин бомба взрыв чеченцы.doc
, содержимое файла затрется, а название останется. Сделал обертку в виде BAT-файла, чтобы сей недостаток устранить:
Самый простой способ, это просто использовать переменную %RANDOM%
, например, в таком виде:
%TEMP%\%RANDOM%.%RANDOM%
Вариант сгенерированного имени:
C:\Windows\Temp\20422.19028
1. Генерируем имя для списка файлов, обработанных shred
:
set RLST=%TEMP%\%RANDOM%.%RANDOM%
По-хорошему надо бы проверить, существует ли такой файл, если существует, сгенерировать новое имя, но тут это единственное имя файла, которое может попасть на существующий файл — в общем, я забил на это.
2. Вызываем shred
:
shred -n 3 -z -v %1 2>%RLST%
где:
-n 3
— количество проходов для затирания содержимого файла
-z
— дополнительный проход, содержимое файла затирается нолями (символом с кодом 0)
-v
— режим подробного вывода на консоль, он пойдет в файл, там будут имена затертых файлов, они понадобятся далее.
2>
shred
выводит данные на STDERR
— перенаправляем вывод в файл, чье имя содержится в переменной %RLST%
.
Содержимое файла из переменной %RLST%
:
>rshred.bat *.txt
shred: 1.txt: pass 1/4 (random)...
shred: 1.txt: pass 2/4 (random)...
shred: 1.txt: pass 3/4 (random)...
shred: 1.txt: pass 4/4 (000000)...
shred: 2.txt: pass 1/4 (random)...
shred: 2.txt: pass 2/4 (random)...
shred: 2.txt: pass 3/4 (random)...
shred: 2.txt: pass 4/4 (000000)...
shred: 3.txt: pass 1/4 (random)...
shred: 3.txt: pass 2/4 (random)...
shred: 3.txt: pass 3/4 (random)...
shred: 3.txt: pass 4/4 (000000)...
shred: readme.txt: pass 1/4 (random)...
shred: readme.txt: pass 2/4 (random)...
shred: readme.txt: pass 3/4 (random)...
shred: readme.txt: pass 4/4 (000000)...
В цикле вытаскиваем из временного файла (%RLIST%
):
FOR /F "tokens=2,5 delims=: " %%i in (%RLST%) do ( [в цикле] )
Справка по команде FOR
BAT-файла (копия в PDF)
3. В выводе имя файла повторяется несколько раз, потому будем искать строчку, где файл упоминается последний раз ((000000)
):
IF "%%j" EQU "(000000)..." ( [ниже код после проверки] )
4. Получаем временное имя файла:
set TMPNAME=%RANDOM%.%RANDOM%
5. Переименовываем обработанный файл в случайное имя, полученное выше:
ren %%i !TMPNAME!
6. Удаляем переименованный файл:
del !TMPNAME!
7. После цикла отключаем установку локальных параметров:
Setlocal DisableDelayedExpansion
Справка по команде (копия в PDF)
8. Затираем и удаляем сам файл с логом из %RLST%
:
::remove list of files
shred -n 3 -z %RLST%
del %RLST%
Минус скрипта, который даже плюс:
У группы удаляемых файлов в цикле будет одно и то же имя файла, из-за хреновой работы %RANDOM%
в CMD (копия), но почему это минус, который плюс — при анализе диска не будет видно, сколько именно файлов было удалено (проверено в WinHex).
Минус скрипта, который минус:
Имя временного файла весьма характерное, при анализе диска будет видно, что кто-то скриптом пользовался. Как сделать нормальные случайные имена файлов в CMD (вида lfcx16.tmp
, например) без внешних утилит, я пока не понял, опять же, из-за косячного %RANDOM%
в винде.
Продолжение. Начало здесь (копия)
Распишу алгоритм, реализованный в функции:
1. Устанавливаем режимы работы:
SetLocal EnableExtensions EnableDelayedExpansion
Справка по команде Копия в PDF
2. Устанавливаем начальные переменные в функции:
Set Out=%~0
Записываем в локальную переменную имя функции (%~0
). Зачем? А спросите у дизайнеров языка CMD, он ебанутый, и без этой фишки вывод данных из функции не сработает.
Set "param=%~1"
Записываем первый и единственный параметр переданный функции (%~1
), т.е. строку, в локальную переменную param
.
Set "str=A!param!"
Добавляем символ A
к строке param
с начала строки, сохраняем результат в локальную переменную str
. На самом деле, можно добавить любой печатный латинский символ. Пусть будет A
.
Set "len=0"
Счетчик длины устанавливаем в ноль.
3. Запускаем основной цикл:
for /l %%a in (30,-1,0) do ( [см. далее] )
Второй параметр цикла (-1
) означает, что цикл пойдет в обратном порядке, от 30
до 0
.
4. Внутри цикла:
4.1. set /a "len|=1<<%%a"
Производится битовый сдвиг переменной цикла (%%a
), т.е. к единице (двоичной) добавляется %%a
нолей (двоичных).
4.2. Над полученным числом производится операция побитового ИЛИ (|
), результат записывается в переменную len
.
4.3. Запускается второй (внутренний) цикл, количество итераций которого проводится по полученной ранее длине (len
):
for %%b in (!len!) do [...]
4.3.1. if "!str:~%%b,1!"==""
Внутри второго цикла, если мы нашли пустой символ на позиции, которую указывает счетчик (%%b
), проводим битовые операции над длиной:
4.3.2. set /a "len&=~1<<%%a"
4.3.2.1. Сначала проводится битовый сдвиг с единицей на %%a
разрядов (нолей)
4.3.2.2. Полученные биты инвертируются (~
) т.е., например, если полученное значение было равно 1000
(в двоичной системе счисления), то после операции ~
оно превращается в 0111
.
4.3.2.3. Последней производится операция побитового И (&
) и значение присваивается переменной len
.
5. Функция возвращает результат:
endlocal & set %Out:~1%=%len%
Функция целиком:
::Start Strlen function :Strlen SetLocal EnableExtensions EnableDelayedExpansion Set Out=%~0 Set "param=%~1" Set "str=A!param!" echo %str% Set "len=0" for /l %%a in (30,-1,0) do ( set /a "len|=1<<%%a" for %%b in (!len!) do if "!str:~%%b,1!"=="" set /a "len&=~1<<%%a" ) endlocal & set %Out:~1%=%len% exit /b 0
Сделал разбор алгоритма по шагам, при меньшем числе итераций (установил в основном цикле первый параметр равным 4
и строку для измерения длины сделал 10 символов — 0123456789
). Все свел в таблицу:
Определение длины строки штатными средствами CMD/BAT тот еще геморрой, но понадобилось, потому расскажу про несколько способов. В этом выпуске самый простой.
Команда set
: экспериментально 1024 символа.
Общий размер переменной: 8191 символ.
Длина командной строки: 8191 символ.
Отсюда
Внимание! Совместимость алгоритмов от Windows XP и выше. Т.е. для DOS и Windows 9x не подойдет.
Есть медленное, но простое решение «в лоб»:
1. Задать циклу for
перебирать числа от 0
до какого-нибудь заведомо большого числа, например 9000
.
for /L %%a in (0,1,9000) do
[…]
2. Получать из строки символ под номером %%a
:
param:~%%a,1
В общем виде:
param:a,b
где:
param:
— взять из переменной param
символ(ы)
a
— позиция нужного символа
b
— количество символов
3. Сравнивать его с пустой строкой, и если строка не пуста (NEQ
):
if "!param:~%%a,1!" NEQ "" (
[…]
4. Прибавить счетчик символов в отдельной переменной:
Set /a "len+=1"
Иначе прервать цикл.
Можно реализовать это в виде функции BAT-файла:
:Strlen SetLocal EnableExtensions EnableDelayedExpansion Set Out=%~0 Set "param=%~1" Set "len=0" for /L %%a in (0,1,9000) do ( if "!param:~%%a,1!" NEQ "" ( Set /a "len+=1" ) else goto :_break ) :_break
Вывод на экран для строк:
Set "String1=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
Set "String2=132 sd72 362 232 83827 3n238237"
Set "String3=1 >>>32 lnsdfn lskd &&&&& _----__\\\\|||sd72 *&&&@@######~~~~~362 232 83827 3n238237"
Set "String4=A"
Set "String5=%%1"
Последняя строка задается в качестве параметра командной строки BAT-файла.
>strlenslow.bat 7894561230.
Length String 1 - [62]
Length String 2 - [31]
Length String 3 - [88]
Length String 4 - [1]
Length String 5 (Command Line Parameter) - [11]
Проблемы алгоритма:
1. Медленный
2. Если задать пустую строку в параметре командной строки — алгоритм ломается:
>strlenslow.bat
[...]
Length String 5 (Command Line Parameter) - [9001]
Хотя, последнее легко исправить.
А про более быстрый алгоритм поговорим в следующей серии.
— DES 100 — консольная утилита, реализующая алгоритм DES
— FC32 — алгоритмы перечислены на скриншоте
— FIGA201R — самописная шифровалка с самописным алгоритмом (криптостойкость не проверялась), описание формата файла и алгоритма в комплекте.
— WinCrypt — алгоритм LOKI
Мелкому другу срочно понадобилась программа, создающая графики по формулам, а Excel не подошел, бо до сих пор не умеет рисовать нормальные синусоиды, если задать интервал, например, от -10 до +10. Во всяком случае, препод сказал, что его графики из Excel не устраивают. А курсовая на носу у парня.
Слава Великим Древним и Ктулху лично, я компьютерный Плюшкин, и моего препода тоже не устраивали графики из Майкрософт Пуксель. Так что откопал такую вот программу.
+ Строить графики по формулам с нужным шагом и интервалом.
+ На одной координатной оси можно размещать несколько графиков
+ Импортировать результат в BMP/GIF
+ Дофига всякого-разного, что никогда не надо было, но вдруг кому-то понадобится (графики в полярных координатах, какие-то производные и прочий страшный матан). Мы электрики — нам красиво синусоиду нарисовать хватает (тьфу-тьфу-тьфу, как бы не сглазить).
Заходим в меню: Построение —> Добавить график
Попадаем в окошко построения:
Вбиваем формулу, выбираем основные параметры графика (цвет, толщина линии и т.д.).
Переключаемся на вкладку Доп. свойства:
Вбиваем диапазон и/или параметры построения (количество шагов, максимальный разрыв между значениями).
График можно отредактировать. Для этого нужно нажать F4 или перейти в меню Построение —> Список графиков:
Нужный график можно удалить, нажав по графику в окне Список графиков правой кнопкой мыши, и выбрав пункт Удал. из контекстного меню, либо отредактировать его (поменять формулу, цвет, прочие параметры) дважды кликнув мышью по соответствующей строке.
Программа сохраняет данные в своем собственном бинарном формате. Не расковыривал его.
Программа может экспортировать изображение в формат BMP или GIF, а поскольку, внутри программа таки растровая, размер экспортируемого изображения может быть любой. Пример:
Скачать оригинальный BMP (1024×768)
На картинке представлена демонстрация возможностей. Три графика:
+ sin(x)^2
— красный
+ -sin(x)^2
— фиолетовый
+ (sin (x^2)^2)*10
— серый
Windows 98 SE — Windows 10 (Windows 11 не подтверждена)
Бесплатно для граждан ГОРФ. Для активации бесплатности нужно в установщике выбрать русский язык и подтвердить дополнение к лицензии. Не ломал, ибо само работает.
Advancend Grapher 1.5 build 3 с MEGA.NZ (SFX ZIP Wrapper+Original Installer)