Любой язык - Транслитерация текста CHGSTR.EXE

Ответить
 • Просмотры: 1
Аватара пользователя
Busla

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение Busla »

Цитата Busla:



kdolzhanskiy@vk, вам нужна не транслитерация. По крайней мере только её недостаточно - разные тире, кавычки, диактрические знаки и прочая расширенную типографику тоже стоит учитывать.
Любой язык - Транслитерация текста CHGSTR.EXE




Автор ещё до этого не дозрел Изображение.




Цитата Busla:



зачем разные кавычки?
Любой язык - Транслитерация текста CHGSTR.EXE




Хотите — догадаюсь с одной попытки? У коллеги YuS_2 C-шная привычка, надо полагать, сказывается Изображение.
Аватара пользователя
YuS_2

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение YuS_2 »

Цитата Busla:



словарь надо в секции begin определять
Любой язык - Транслитерация текста CHGSTR.EXE




согласен, это будет правильнее...




Цитата Busla:



зачем разные кавычки?
Любой язык - Транслитерация текста CHGSTR.EXE





Цитата Iska:



C-шная привычка, надо полагать, сказывается
Любой язык - Транслитерация текста CHGSTR.EXE




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

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение Iska »

Ну, стало быть, у того человека рефлекс сработал Изображение.
Аватара пользователя
kdolzhanskiy@vk

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение kdolzhanskiy@vk »

Господа, мой максимум - собрать костыль из batников. Вот такими костылями я сумел пройти от: NowPlayingTemplate.htm - > index.htm -> OnAir.txt Все три файла в auto.7z Сейчас по совету YuS_2 и

Iska приступил к освоению Powershell. Предложенная функция translit (с исправлениями), судя по всему, отлично работает, но у меня пока не хватает опыта чтобы ее грамотно запускать.
Вложения
auto.7z
(441 байт) 0 скачиваний
auto.7z
(441 байт) 0 скачиваний
Аватара пользователя
YuS_2

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение YuS_2 »

Цитата kdolzhanskiy@vk:



пока не хватает опыта чтобы ее грамотно запускать.
Любой язык - Транслитерация текста CHGSTR.EXE




А какие сложности с запуском?

Есть же варианты...

Проще всего, с исправлениями, добавить функцию в профиль (это файл, расположенный по пути Users\NAME_USER\Documents\WindowsPowerShell\profile.ps1 либо имя файла может быть и таким: Microsoft.PowerShell_profile.ps1), после чего, её можно использовать в любых скриптах powershell... а способ запуска через сценарий .bat, выше описан.

Вот подправленная функция:



Код:

Код: Выделить всё

function global:translit {
	begin {
		$charr = @{
			[char]'А' = 'A'
			[char]'а' = 'a'
			[char]'Б' = 'B'
			[char]'б' = 'b'
			[char]'В' = 'V'
			[char]'в' = 'v'
			[char]'Г' = 'G'
			[char]'г' = 'g'
			[char]'Д' = 'D'
			[char]'д' = 'd'
			[char]'Е' = 'E'
			[char]'е' = 'e'
			[char]'Ё' = 'E'
			[char]'ё' = 'e'
			[char]'Ж' = 'ZH'
			[char]'ж' = 'zh'
			[char]'З' = 'Z'
			[char]'з' = 'z'
			[char]'И' = 'I'
			[char]'и' = 'i'
			[char]'Й' = 'I'
			[char]'й' = 'i'
			[char]'К' = 'K'
			[char]'к' = 'k'
			[char]'Л' = 'L'
			[char]'л' = 'l'
			[char]'М' = 'M'
			[char]'м' = 'm'
			[char]'Н' = 'N'
			[char]'н' = 'n'
			[char]'О' = 'O'
			[char]'о' = 'o'
			[char]'П' = 'P'
			[char]'п' = 'p'
			[char]'Р' = 'R'
			[char]'р' = 'r'
			[char]'С' = 'S'
			[char]'с' = 's'
			[char]'Т' = 'T'
			[char]'т' = 't'
			[char]'У' = 'U'
			[char]'у' = 'u'
			[char]'Ф' = 'F'
			[char]'ф' = 'f'
			[char]'Х' = 'KH'
			[char]'х' = 'kh'
			[char]'Ц' = 'TC'
			[char]'ц' = 'tc'
			[char]'Ч' = 'CH'
			[char]'ч' = 'ch'
			[char]'Ш' = 'SH'
			[char]'ш' = 'sh'
			[char]'Щ' = 'SHCH'
			[char]'щ' = 'shch'
			[char]'Ъ' = ''
			[char]'ъ' = ''
			[char]'Ы' = 'Y'
			[char]'ы' = 'y'
			[char]'Ь' = ''
			[char]'ь' = ''
			[char]'Э' = 'E'
			[char]'э' = 'e'
			[char]'Ю' = 'YU'
			[char]'ю' = 'yu'
			[char]'Я' = 'YA'
			[char]'я' = 'ya'
		}
	}
	process {
		$_.tochararray()|%{
			if ($charr[$_] -cne $null){
				$arr += $charr[$_]
			} else {
				$arr += $_
			}
		}
		write-output $arr
	}
}

Запускать через батник, как описано выше, предварительно заменив utf8 на default во всех местах батника, если исходные файлы в кодировке 1251
Аватара пользователя
Busla

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение Busla »

kdolzhanskiy@vk, в целом смешивание батников и PoSh нельзя назвать грамотным подходом. Поэтому пока не заморачивайтесь перфекционизмом и просто скопируйте код.



Если вас смутила инструкция:


Цитата YuS_2:



это функция. Можно в профиль добавить, затем использовать в любом мест
Любой язык - Транслитерация текста CHGSTR.EXE




то профиль в данном случае - это скрипт на powershell который автоматически исполняется при каждом запуске powershell

набери в консоли powershell



Код:

Код: Выделить всё

$PROFILE

в ответ высветится полное имя файла

впрочем, проще сразу дать команду на редактирование:



Код:

Код: Выделить всё

notepad.exe $PROFILE

вставляете код из третьего сообщения и жмёте Сохранить как[/i], там указываете кодировку UTF-8



теперь функцию translit можно использовать без каких-либо дополнительных телодвижений




Цитата kdolzhanskiy@vk:



Сейчас по совету YuS_2 и Iska приступил к освоению Powershell
Любой язык - Транслитерация текста CHGSTR.EXE




сочувствую

для начала освоения у вас не самая подходящая задача, потому что сложившийся подход для извлечения данных из текста - регулярные выражения (regexp); для извлечения данных из html/xml - DOM, xPath, XSLT. Каждой из технологий посвящены довольно объёмные книги



подозреваю, что NowPlayingTemplate.htm тоже результат какой-то обработки - не похож он на html



Да и по powershell я не видел толковых учебников. Значительная часть примеров (если не сказать: подавляющее большинство) что у MS, что у сторонних разработчиков модулей демонстрирует явно функциональный подход. Однако нигде сколько-нибудь последовательно сама функциональная парадигма не подаётся.

Складывается ощущение, что чтобы писать грамотно на powershell нужно изучать какой-нибудь Haskell или хотя бы Python.
Аватара пользователя
Iska

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение Iska »

Цитата Busla:



подозреваю, что NowPlayingTemplate.htm тоже результат какой-то обработки - не похож он на html
Любой язык - Транслитерация текста CHGSTR.EXE




Да это какой-нибудь include скорее всего.




Цитата Busla:



Да и по powershell я не видел толковых учебников.
Любой язык - Транслитерация текста CHGSTR.EXE




Да, это прямо беда… Изображение
Аватара пользователя
kdolzhanskiy@vk

Re: Любой язык - Транслитерация текста CHGSTR.EXE

Сообщение kdolzhanskiy@vk »

Цитата Busla:



подозреваю, что NowPlayingTemplate.htm тоже результат какой-то обработки - не похож он на html
Любой язык - Транслитерация текста CHGSTR.EXE




На самом деле это был html c элементами xml. Просто я купировал его под свои нужды до трех строчек
Ответить

Вернуться в «Скриптовые языки администрирования Windows»