Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Подскажите скрипт или утилиту для перевода текста в txt-файле в другую раскладку

Ответить
Настройки темы
CMD/BAT - [решено] Подскажите скрипт или утилиту для перевода текста в txt-файле в другую раскладку

Новый участник


Сообщения: 46
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: Trueman777
Дата: 23-09-2011
Поясняю: например, у меня есть txt-файл с текстом Привет, мне нужен батник или самостоятельная программа, которая создаст мне текстовый файл с содержимым Ghbdtn.

Как я понимаю, нужно просто установить соответствие символов типа "йцукенгшщзхъ..." = "qwertyuiop[]..." и "ЙЦУКЕНГШЩЗХЪ..." = "QWERTYUIOP{}..." и выполнить замену текста.
На крайняк, конечно, можно было бы вручную заменять по одному символу через одноименную функцию в Блокноте, но это, во-первых, сам по себе процесс будет гемморный, а во-вторых, у меня больше 3 млн слов в файле. Блокнот, боюсь, не осилит замену в таком огромном объеме текста. Я состарюсь раньше, чем успею закончить посимвольную замену =(

Спасибо.

Отправлено: 07:44, 23-09-2011

 

Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z Archive_s_110923_11-46.7z
(26.9 Kb, 32 просмотров)

Держи.

Поправить транслит на свое усмотрение думаю сможешь

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:48, 23-09-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Trueman777, примерно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForReading   = 1
Const ForWriting   = 2

Const strLatin    = "`qwertyuiop[]asdfghjkl;'zxcvbnm,./~!@#$^&QWERTYUIOP{}ASDFGHJKL:""ZXCVBNM<>?|"
Const strCyrillic = "ёйцукенгшщзхъфывапролджэячсмитьбю.Ё!""№;:?ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,/"

Dim objFSO
Dim objTSSource
Dim objTSDest

Dim objDictionary

Dim strFileNameSource
Dim strFileNameDest

Dim i


strFileNameSource = "E:\Песочница\0076\Source.txt"
strFileNameDest   = "E:\Песочница\0076\Dest.txt"

Set objDictionary = WScript.CreateObject("Scripting.Dictionary")

For i = 1 To Len(strCyrillic)
	objDictionary.Add Mid(strCyrillic, i, 1), Mid(strLatin, i, 1)
Next

Set objFSO        = WScript.CreateObject("Scripting.FileSystemObject")
Set objTSSource   = objFSO.OpenTextFile(strFileNameSource, ForReading)
Set objTSDest     = objFSO.OpenTextFile(strFileNameDest, ForWriting, True)

With objTSSource
	Do Until .AtEndOfStream
		objTSDest.WriteLine FromCyrillicToLatin(.ReadLine())
	Loop
	
	.Close
End With

objTSDest.Close

Set objTSDest     = Nothing
Set objTSSource   = Nothing
Set objFSO        = Nothing
Set objDictionary = Nothing

WScript.Quit 0
'=============================================================================

'=============================================================================
Function FromCyrillicToLatin(strLine)
	Dim i
	
	Dim strValue
	Dim char
	
	strValue = ""
	
	For i = 1 To Len(strLine)
		char = Mid(strLine, i, 1)
		
		If objDictionary.Exists(char) Then
			strValue = strValue & objDictionary.Item(char)
		Else
			strValue = strValue & char
		End If
	Next
	
	FromCyrillicToLatin = strValue
End Function
'=============================================================================

1. Кодировка, судя по контексту ANSI/win-1251.
2. Фильтры будут работать куда быстрее, ежели писать их на C.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:49, 23-09-2011 | #3


Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280

Профиль | Отправить PM | Цитировать


Iska, ему транслит надо сделать, а не перевести раскладку.

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite


Отправлено: 09:49, 23-09-2011 | #4


Новый участник


Сообщения: 46
Благодарности: 2

Профиль | Отправить PM | Цитировать


sLiDeR-X, спасибо. Вроде понятно, нужно подредактировать cmd-файл, переписав пары символов в соответствии с раскладкой клавиатуры, а то там кракозябры какие-то... )) Ну принцип, вроде, ясен. А exe'шик там для чего?

Iska, Я извиняюсь... что мне делать с этим кодом? )

Цитата sLiDeR-X:
Iska, ему транслит надо сделать, а не перевести раскладку. »
Не-не-не, именно раскладку, всё правильно. Я же это описал и в заголовке темы, и "йцукен=qwerty", и "Привет=Ghbdtn"...

Отправлено: 10:06, 23-09-2011 | #5


Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280

Профиль | Отправить PM | Цитировать


Trueman777, если вам из русского в английский надо, то править ничего не надо.
Экзешник - это программа, посредством которой идет преобразование

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite


Отправлено: 10:45, 23-09-2011 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Trueman777:
Iska, Я извиняюсь... что мне делать с этим кодом? ) »
1. Поменять в коде:
Код: Выделить весь код
strFileNameSource = "E:\Песочница\0076\Source.txt"
strFileNameDest   = "E:\Песочница\0076\Dest.txt"
на пути к Вашим файлам (я не стал делать обработку аргументов, поскольку речь шла об одном файле).

2. Сохранить текст кода в произвольном файле с расширением «.vbs» с кодировкой ANSI (windows-1251).

3. Запустить сохранённый скрипт на исполнение двойным щелчком.

Отправлено: 16:33, 23-09-2011 | #7


Новый участник


Сообщения: 46
Благодарности: 2

Профиль | Отправить PM | Цитировать


Большое спасибо, всё получилось.

Отправлено: 22:43, 23-09-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Подскажите скрипт или утилиту для перевода текста в txt-файле в другую раскладку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Подскажите эффективную утилиту или программу наподобие AVZ Птушвиче Лечение систем от вредоносных программ 2 27-06-2011 18:49
CMD/BAT - [решено] Нужен Bat-ник который будет искать слово в текстовом файле .txt Alexzander_bas Скриптовые языки администрирования Windows 10 06-06-2011 16:51
[решено] Скрипт для отправки файлов или просто текста на определенный E-mail wwe AutoIt 2 02-02-2010 18:15
Разное - [решено] FoxPro 2.6 Замена фрагментов текста в txt-файле Pashka Программирование и базы данных 7 18-01-2010 19:20
Подскажите консольную утилиту замена текста с поддержкой преобразования в UTF 8 SyCraft Автоматическая установка Windows 2000/XP/2003 0 01-05-2006 21:20




 
Переход