Показать полную графическую версию : Notepad++
Эйзерс,
Notepad++ - обычный текстовый редактор с чуть доработанным функционалом. И если к нему прилепить костыль в виде плагина для проверки ошибок в коде - он шибко умнее не станет. Для проверки ошибок в коде воспользуйтесь, например, Integrated Development Environment - Eclipse (https://www.eclipse.org/downloads/)
Uragan66
31-07-2018, 22:31
Здравствуйте.
Может немного не в тему, заранее приношу извинения.
Нужно написать регулярное выражение для замены в Notepad++
Суть такова: есть определённое количество строк (обычно 100). В конце каждой строки нужно поставить знак "!" или "." (точку или восклицательный знак), чтобы они чередовались в произвольном порядке, случайным образом.
Можно составить регулярное выражение для этой цели ?
Буду благодарен за любые советы и подсказки.
Можно составить регулярное выражение для этой цели ? »
В произвольном порядке/случайным образом — нет, нельзя.
Для текстового файла достаточно написать простой и банальный скрипт WSH/PoSH, который будет осуществлять требуемое.
Uragan66
01-08-2018, 08:11
Iska, спасибо!
Ясно... жаль, что не получится с регулярным выражением.
а с текстовым файлом длительная процедура будет. Сначала из буфера обмена строки вставляются в Notepad++, затем по нажатию кнопок выполняется макрос и уже тогда требуется добавить "!" или "."
если сохранять в файл, потом выполнять скрипт, а затем строки копировать, то по времени будет то же самое, как и в Notepad++ вручную проставить знаки.
Если бы можно было написать скрипт, открывающий Notepad++, вставляющий в новый файл содержимое буфера, затем макрос, добавление "!" или "." и копирование строк обратно в буфер, это было бы замечательно.
Uragan66, возможно, будет проще реализовать макрос в том же скрипте. Что делает макрос?
Uragan66
01-08-2018, 10:19
Iska, да макрос то самый простой, добавляет "Здравствуйте, " в начале каждой строки, а в конце точку. Потом некоторые точки вручную меняю на "!"
А можно написать скрипт, чтобы создавал текстовый файл, вставлял содержимое буфера и потом вышеуказанные действия ?
К сожалению я в скриптах не силён, ком. строка ещё да, а скрипты увы...
Iska, да макрос то самый простой, добавляет "Здравствуйте, " в начале каждой строки, а в конце точку. Потом некоторые точки вручную меняю на "!" »
А в каком месте здесь находится:
В конце каждой строки нужно поставить знак "!" или "." (точку или восклицательный знак), чтобы они чередовались в произвольном порядке, случайным образом. »
?
Вот Вам код на PowerShell:
$sDestFile = "$PSScriptRoot\Result.txt"
$aContent = Get-Clipboard -Format 'Text' -TextFormatType 'UnicodeText'
$aContent | ForEach-Object -Process {
$sLine = 'Здравствуйте, ' + $_.TrimEnd()
if(-not ($sLine.EndsWith('.') -or $sLine.EndsWith('!') -or $sLine.EndsWith('?'))) {
$sLine + (Get-Random '.', '!')
} else {
$sLine
}
} | Set-Content -Path $sDestFile
Читаем текстовое содержимое из буфера обмена. К каждой строке добавляем в начале текст «Здравствуйте, » и убираем (если есть) концевые пробельные символы. Затем, если последний символ строки не является ни точкой, ни восклицательным или вопросительным знаком, добавляем случайным образом либо точку, либо восклицательный знак. Полученное текстовое содержимое записывается в файл Result.txt в каталоге скрипта.
Это то, что Вы хотели?
Uragan66
01-08-2018, 18:10
Iska, спасибо большое!
но пока не хочет работать... появляется сообщение:
http://images.vfl.ru/ii/1533135856/a7cfd3b3/22717389_m.jpg (http://vfl.ru/fotos/a7cfd3b322717389.html)
Если более подробно, то суть задачи такова: имеется 100 имен в буфере обмена, каждое с новой строки, к примеру
Светлана
Вадим
Марк
Полина
Алла
Валерий
Елена
Николай
Егор
Иван
Андрей
Перед каждым именем нужно добавить "Здравствуйте, " , а после имени, без пробела, точку или воскл. знак, в случайном порядке.
но пока не хочет работать... появляется сообщение: »
Обновите PowerShell хотя бы до пятой версии.
Перед каждым именем нужно добавить "Здравствуйте, " , а после имени, без пробела, точку или воскл. знак, в случайном порядке. »
Так и делается:
https://i.imgur.com/8IHYnRj.png
https://i.imgur.com/GA1X63Z.png
https://i.imgur.com/Uqr72ST.png
Uragan66
01-08-2018, 18:47
Iska, понял, спасибо большое.
попробую обновить, может получится, у меня W7 и обнов конечно нет.
у меня W7 и обнов конечно нет. »
У меня Windows 7 SP1, и я устанавливал PowerShell 5.0 отдельно.
Uragan66
01-08-2018, 21:50
Iska, ещё раз благодарю!
и я устанавливал PowerShell 5.0 отдельно. »
нашел тоже отдельный файл, поставил 5.1
всё получилось так как нужно... хотя и осталась маленькая "хотелка"...
написал батник, запускающий скрипт и копирующий в буфер результат работы:
@echo off
chcp 1251 >nul
Powershell -File ./zdr.ps1
@echo start /wait Y|clip < Result.txtс батника всё работает отлично, но с его ярлыка или если компилировать батник в исполняемый файл, работать не хочет.
Вернее работает, но почему-то копирует в буфер обмена предыдущее содержимое файла Result.txt. То есть, если один раз bat.exe отработал, на второй раз в буфер копируется результат первого запуска.
и копирующий в буфер результат работы »
Вывод в файл тогда не нужен, я правильно понимаю?
$aContent = Get-Clipboard -Format 'Text' -TextFormatType 'UnicodeText'
$aContent | ForEach-Object -Process {
$sLine = 'Здравствуйте, ' + $_.TrimEnd()
if(-not ($sLine.EndsWith('.') -or $sLine.EndsWith('!') -or $sLine.EndsWith('?'))) {
$sLine + (Get-Random '.', '!')
} else {
$sLine
}
} | Set-Clipboard
Uragan66
01-08-2018, 22:11
Вывод в файл тогда не нужен, я правильно понимаю? »
вообще-то да, раньше то я с Notepad++ всё равно копировал результат в буфер обмена.
спасибо, попробую скрипт поменять...
Uragan66
01-08-2018, 22:37
Iska, получилось отлично.. всё работает.. Благодарю!
Вывел ярлык батника на раб. стол, работает... а с исполняемого файла всё равно не хочет (компилирую батник в exe). Ну и так нормально.
Uragan66, не надо ничего компилировать, не надо никаких батников. Укажите в ярлыке:
powershell.exe -File "Путь\Имя.ps1"
и всё. При сохранении ярлыка к исполняемому файлу powershell.exe будет добавлен полный путь, наподобие:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File "Путь\Имя.ps1"
Uragan66
02-08-2018, 08:54
Iska, спасибо!
Работает и с этого ярлыка. Просто все ярлыки помещаю на панель TurboLaunch, чтобы более-менее порядок на раб. столе был. Вот с этой то панели и не хотят эти ярлыки работать, ни ярлык батника, ни ярлык скрипта. Вот и подумал, может скомпилировать, но тоже не хочет.
Ну нормально и с ярлыками. Ещё раз спасибо!
Просто все ярлыки помещаю на панель TurboLaunch, чтобы более-менее порядок на раб. столе был. Вот с этой то панели и не хотят эти ярлыки работать, ни ярлык батника, ни ярлык скрипта. »
Потому что Вы явно его как-то неправильно готовите. У меня работает:
https://i.imgur.com/Z4bSrf9.png
… True Launch Bar • Superior replacement for standard Quick Launch (http://www.truelaunchbar.com/). Персональная лицензия для текущей версии — всего 200 рублей, домашняя — на 4 машины — 400. Предыдущая, шестая версия, для ExUSSR была и вовсе бесплатна (можете поискать при желании).
Uragan66
02-08-2018, 13:24
явно его как-то неправильно готовите. »
Да я по привычке просто перетаскиваю иконку на TurboLaunch.
исправил по Вашему примеру, даже папку с скриптом переместил на С. Но не хочет работать... непонятно в чём причина.
http://images.vfl.ru/ii/1533205182/1152ee0f/22727116.jpg
А за True Launch Bar спасибо, попробую. Можно подобную панель и на Rainmeter сделать, но всё времени не хватает, как-то привык к TurboLaunch.
True Launch Bar вроде интересная штука, надо будет попробовать.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC