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

Показать сообщение отдельно

Ветеран


Сообщения: 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