Иногда достаточно неудобно переводить уже набранный текст в другую раскладку по различным причинам: вы хотели бы поменять в нем пробелы на дефисы (для изображений), или, наоборот, на знак нижнего подчеркивания, а возможно просто хотите произвести транслитерацию текста из буфера обмена, чтобы не вводить данные заново, перевести в нижний регистр все буквы и т.п. Именно для этих целей и был создан специальный скрипт, который в автоматическом режиме сделает все необходимые операции в фоне. Для этого нам потребуется сторонний софт под названием ZennoPoster.

[maxbutton id="3" text="ZennoPoster" url="/af-zenno" linktitle="External link | Внешняя ссылка" window="new" nofollow="true"]

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

В программе уже имеется так называемый кубик с решением по транслитерации, для решения просто нужно установить переменную (часть текстовых данных или буфер обмена), далее выбрать пункт "Транслитерация" и, в принципе, это все.

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

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

При выборе буфера обмена, код следующий:

string gettxt = System.Windows.Forms.Clipboard.GetText(); project.Variables["new_txt"].Value = gettxt; // Установленная пауза System.Threading.Thread.Sleep(1 * 1000); // transliteration string text = project.ExecuteMacro(project.Variables["new_txt"].Value); // Обработка текста "Транслитерация" project.Variables["new_txt"].Value = Macros.TextProcessing.Translit(text);

При выборе файла с текстом, код такой:

string path = project.Variables["path_txt_file"].Value; string text = System.IO.File.ReadAllText(path); project.Variables["txt"].Value = System.IO.File.ReadAllText(path); project.Variables["new_txt"].Value = Macros.TextProcessing.Translit(text); string new_text = project.Variables["new_txt"].Value; string new_text_path = project.Variables["path_new_txt_file"].Value; var new_path = project.Directory + "files" + new_text_path; System.IO.File.WriteAllText(new_path,new_text);

Теперь заменяем нужные символы на свои, например, вместо пробелов ставим знак нижнего подчеркивания и т.п.

Очищаем буфер обмена перед вставкой в него нужных данных. Это в первом варианте использования, конечно.

System.Windows.Forms.Clipboard.Clear(); // Установленная пауза System.Threading.Thread.Sleep(1 * 1000); System.Windows.Forms.Clipboard.SetText(project.Variables["new_txt"].Value);

Переводим полученную информацию в нижний регистр при необходимости и сохраняем все данные в файл.

// Текст для обработки string text = project.ExecuteMacro(project.Variables["new_txt"].Value); // Обработка текста "ToLower" project.Variables["new_txt"].Value = Macros.TextProcessing.ToLower(text, "All");

Сохранение текста в файл:

string new_text_path = project.Variables["path_new_txt_file"].Value; string new_text = project.Variables["new_txt"].Value; var new_path = project.Directory + "files" + new_text_path; System.IO.File.WriteAllText(new_path,new_text);

На этом закончим "размусоливание" и предоставим готовый результат работы!

[maxbutton id="3" text="ZennoPoster" url="/af-zenno" linktitle="External link | Внешняя ссылка" window="new" nofollow="true"]

Статья была полезна?

A
Admin

Блогер и преподаватель по темам фотографии, дизайна и цифрового творчества.

Все статьи