Тогда зачем Вы добавляли лишние строки в учебный код?
А затем, что я дилетант в пошике, я пробую разные варианты. Мне хочется поиграться, проникнуться философией новой среды, мне было важно выстроить возможную структуру кода. Мне было интересно попробовать передачу параметров в функции, пормботать с данными разных типов, посмотреть, как возвращаются результаты. А хело ворд я уже давно не пишу ....
Последнее редактирование 31.01.2021, 17:19 Megaloman (Мастер-Эксперт)
Вы писали : "я пробую разные варианты. Мне хочется поиграться, проникнуться философией новой среды" - и это замечательно! Так должны учиться все, кто хочет достичь Успеха! Вы рекомендовали мне хороший учебник "PowerShell справочник УильямСтанек". В книге много листингов с учебными кодами. Заметьте, что бОльшая часть листингов содержит всего 1…5 строчек кода. Ничего лишнего в каждом Примере! Поэтому, нам легко понимать Учителя. А если бы Уильям напихал в листинги стихи и код-блоки не по теме, с которыми он когда-то игрался, нам было бы намного труднее отфильтровывать суть его мысли в текущем абзаце. И он не стал бы лучшим Учителем. Давайте брать пример с культурно-деловых американцев. Тогда и спойлер не нужно будет просить у Алексея Георгиевича.
Вы просили "PowerShell справочник УильямСтанек … переслать её мне…" - эту книгу я скачал летом с http://1c-predpriyatie… . Эта ссылка и сегодня предлагает скачать справочник.
Спасибо Вам за предоставленную Вашу библиотеку! "PowerShell Введение.АндрейПопов.pdf" я скачал 24янв2021 с Ссылка . Попов - большой спец по VBS , его материалы по PowerShell слабее, чем у Станека. Но Попов восполняет пограничные пробелы м-ду этими языками, когда чисто-консольный PowerShell не предлагает инструмы графич ДиалогЗапросов, и тогда можно из PowerShell вызвать в помощь VBS-диалог в удобном графи-окошке. =сУважением!
Предлагаю вам и всем смелым испытателям опробовать мою программку BBCodeГенератор. Написать её предложил уважаемый Roman Chaplinsky "сделать скрипт, превращающий символы вне определённого диапазона в BBcode и обратно… чтобы писать ответ понятными символами, а потом конвертировать в безопасно отправляемый формат" (rfpro.ru/question/199149#316831).
Написать скрипт для себя и одной ОперСистемы - нетрудно. В декабре2020 мой скрипт BBCodeГенератор.vbs под WinXP уже генерил BBCode . Я отправляю на скрипт ТекстовыйДокумент.txt , предназначенный для отправки на rfpro.ru-сервер. Скрипт бегло заменяет x^2 , U_1 и pi на BBCode [sup]2[/sup] , U[sub]1[/sub] , [$960$] . Исходный файл бэкапируется в папку C:\Temp\ для временных файлов для возможного отката, а контент правленного исходника можно вставлять в Форму Ответа или МиниФорума rfpro-сервера. Скрипт предлагает запустить HtmMaker.vbs создать из полученного текстовика html-копию, которая открывается Браузером с символами в конечном виде x2 , U1 , π .
Поначалу я обрадовался успеху, но обнаружились "подводные камни". В результате быстрой авто-замены фрага ro на ρ слово rfpro.ru авто-заменялось на rfpρ.ru . Я конечно, привлёк обработчик Регулярных выражений, научил скрипт отличать ro в окружении пробелов/мат-знаков от ro в окружении латин-букв. Но, всё же, в обрабатываемом тексте иногда бывают фрагменты, которые НЕльзя авто-заменять на BBCode автомати. То есть перед каждой заменой надо выводить пользователю Запрос согласия.
Самое проблематичное: в тексте бывает много одинаковых фрагментов, которые надо заменить, но НЕ все. Поэтому в запросе согласия замены надо показывать пользователю не только заменяемый фраг, какой он есть и будет, но ещё и его ближайшее текстовое окружение. В 2х больших фразах до и после замены надо выделить маленький изменяющийся фраг так, чтобы вокруг него не добавлялись скобки, пробелы и прочие выделители, ухудшающие читаемость фрагментов. Такое выделение можно сделать только цветом шрифта/фона или жирностью.
Простенький VBScript не обладает инструментами вывода текста на экран разными цветами в одной строке. Писать их на Lazarus или Паскале - слишком громоздко (нужна среда программирования, компиляторы, хранить Исходные коды + исполняемые exe…). Следуя Вашим советам я стал упорно изучать PowerShell . Вы оказались правы: этот язык имеет мощные команды и предоставляет очень полезные возможности, которых мне ранее не хватало: подсветка текст-фрагментов, получение скэн-кодов нажатых клавиш, воспроизведение звука и открытие графической формы ВыборФайла . 2 последние функции хорошо работали в VBS под WinXP , но корпорация Microsoft запретила их в Win7 и более новых ОС.
Однако, есть у PowerShell и недостатки: Отсутствие Процедур (много-кратно-исполняемых блоков кода). Заменяем процедуры вырожденными функциями, и обнаруживаем отсутствие в них полезного оператора Exit Function для досрочного выхода из функции после обработки одного ветвления с целью уменьшить глубину оставшихся (ещё не обработанных) ветвлений.
VBS по-умолчанию сохраняет файлы в компактной кодировке Windows-1251 - 1 Байт/символ. PowerShell сохраняет в Юникоде - с удвоенным объёмом файла. Для англо-язычных можно указать кодировку utf-8 , в которой цифры и латиница занимает 1 Байт/символ. Но как указать рус-кодировку 1-Байтную ? - не написано ни в учебниках, ни в Справке, ни в Инете. Мне с большим трудом удалось найти способ методом тыка.
Но самый главный недостаток PowerShell - искусственный запрет от корпорации Microsoft на запуск программ, написанных на его языке. Сама же корпорация опубликовала, как обойти запреты командами из КомСтроки. Но не все пользователи могут работать в командной строке и запускать наши программы в сценариях типа ps1 . То есть, как и написано в Microsoft-документе из Вашей библиотеки "PowerShell предназначен для Администрирования". Я сделал вывод, что писать программы лучше на VBS . Потому что любой пользователь может запустить их.
В моём пакете запускать надо BBCodeГенератор.vbs . А когда ему не под силу некоторые операции, он сам вызывает помощника BBCodДиалоги.ps1 из подпапки BBCodДоп с нужными аргументами запуска. Программа ничего не изменяет в ОперСистеме без согласия Пользователя. Но даже когда Пользователь согласился на правки в его документе, то мой скрипт перед сохранением изменений бэкапирует ИсходныйДокумент в папку Temp (для временных файлов) на случай возможного отката. Эту папку Temp мы регулярно очищаем, удаляя из неё старые файлы и папки.
Я долго испытывал свой прог-пакет в системах WinXP , Win7 , Win8.1 и Win10. У меня всё работает чётко. Если у вас что-то пойдёт не так или будут какие-то критика и пожелания, то вмести мы сможем сделать программу лучше. Прилагаю архив с файлами. Его надо распаковать в какую-нибудь папку. Не обязательно в отдельную. Главное, чтоб файл BBCodeГенератор.vbs и папка BBCodДоп были под одной крышей общего родитель-каталога. В папке BBCodДоп есть "BBCode Инструкция.htm" - ПомощьСправка.
Уважаемый пользователь!
Вы зашли на форум в качестве гостя. Гости не могут оставлять сообщения.
Пожалуйста, зарегистрируйтесь.
Если Вы уже зарегистрированы, введите Ваши регистрационные данные в поля вверху страницы.
Ваши возможности:
Вы не можете создавать разделы
Вы не можете создавать ветки
Вы не можете оставлять сообщения
Вы не можете использовать BBCode
Уровень доступа:
= общий =