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