Windows Script Host для Windows 2000/XP
Шрифт:
function MakeRusDict {
//Создаем объект Dictionary
RusDict = WScript.CreateObject("Scripting.Dictionary");
//Заполняем пары "ключ" (символ в DOS-кодировке)-"значение" (символ в
//Window-кодировке) для всех букв русского алфавита
RusDict.add("Ђ", "А"); RusDict.add("Ѓ", "Б"); RusDict.add("‚", "В");
RusDict.add("ѓ", "Г"); RusDict.add("„", "Д"); RusDict.add("…", "Е");
RusDict.add("р", "Ё"); RusDict.add("†", "Ж"); RusDict.add("‡", "З");
RusDict.add("€", "И"); RusDict.add("‰", "Й"); RusDict.add("Љ", "К");
RusDict.add("‹", "Л"); RusDict.add("Њ", "М"); RusDict.add("Ќ", "Н");
RusDict.add("Ћ", "О"); RusDict.add("Џ", "П"); RusDict.add("ђ", "Р");
RusDict.add("‘", "С"); RusDict.add("’", "Т"); RusDict.add("“", "У");
RusDict.add("”", "Ф"); RusDict.add("•", "Х"); RusDict.add("–", "Ц");
RusDict.add("—", "Ч"); RusDict.add("", "Ш"); RusDict.add("™", "Щ");
RusDict.add("љ", "Ъ"); RusDict.add("›", "Ы"); RusDict.add("њ", "Ь");
RusDict.add("ќ", "Э"); RusDict.add("ћ", "Ю"); RusDict.add("џ", "Я");
RusDict.add(" ", "а"); RusDict.add("Ў", "б"); RusDict.add("ў", "в");
RusDict.add("Ј", "г"); RusDict.add("¤", "д"); RusDict.add("Ґ", "е");
RusDict.add("с", "ё"); RusDict.add("¦", "ж"); RusDict.add("§", "з");
RusDict.add("Ё", "и"); RusDict.add("©", "й"); RusDict.add("Є", "к");
RusDict.add("«", "л"); RusDict.add("¬", "м"); RusDict.add("", "н");
RusDict.add("®", "о"); RusDict.add("Ї", "п"); RusDict.add("а", "р");
RusDict.add("б", "с"); RusDict.add("в", "т"); RusDict.add("г", "у");
RusDict.add("д", "ф"); RusDict.add("е", "х"); RusDict.add("ж", "ц");
RusDict.add("з", "ч"); RusDict.add("и", "ш"); RusDict.add("й", "щ");
RusDict.add("к", "ъ"); RusDict.add("л", "ы"); RusDict.add("м", "ь");
RusDict.add("н", "э"); RusDict.add("о", "ю"); RusDict.add("п", "я");
}
В функции
DosToWin
из VBScript-сценария StdIn1.vbs (листинг 2.15) реализован другой подход к переводу строки в Windows-кодировку, связанный с преобразованием ANSI-кодов символов: Function DosToWin(s)
Dim i,k,ss
ss=""
For i=1 To Len(s) ' Цикл по всем символам в строке
k = Asc(Mid(s,i,1)) ' Определяем ANSI-код i-го символа
' Изменяем код k на код соответствующего символа в
' Windows-кодировке
If (128 <= k) And (k <= 175) Then
k=k+64
ElseIf (224 <= k) And (k <= 239) Then
k=k+16
ElseIf k = 240 Then
k=168
ElseIf k = 241 Then
k=184
End If
ss=ss+Chr(k) ' Возвращаем преобразованную строку
Next
DosToWin=ss
End Function
Весь алгоритм этой функции состоит в вычислении по ANSI-коду буквы русского алфавита в DOS-кодировке кода символа в Windows-кодировке, соответствующего этой букве.
Листинг 2.14. Ввод одной строки с помощью метода
StdIn.ReadLine
(JScript)/*******************************************************************/
/* Имя: StdIn1.js */
/* Язык: JScript */
/* Описание: Пример использования метода StdIn.ReadLine */
/*******************************************************************/
var s,RusDict; //Объявляем переменные
//Функция для создания объекта Dictionary с парами "ключ-значение", где
//"ключ"-буква в DOS-кодировке, "значение"- символ, соответствующий этой
//букве в Windows-кодировке
function MakeRusDict {
//Создаем объект Dictionary
RusDict = WScript.CreateObject("Scripting.Dictionary");
//Заполняем пары "ключ" (символ в DOS-кодировке)-"значение" (символ в
//Window-кодировке) для всех букв русского алфавита
RusDict.add("Ђ", "А"); RusDict.add("Ѓ", "Б"); RusDict.add("‚", "В");
RusDict.add("ѓ", "Г"); RusDict.add("„", "Д"); RusDict.add("…", "Е");
RusDict.add("р", "Ё"); RusDict.add("†", "Ж"); RusDict.add("‡", "З");
RusDict.add("€", "И"); RusDict.add("‰", "Й"); RusDict.add("Љ", "К");
RusDict.add("‹", "Л"); RusDict.add("Њ", "М"); RusDict.add("Ќ", "Н");
RusDict.add("Ћ", "О"); RusDict.add("Џ", "П"); RusDict.add("ђ", "Р");
Поделиться:
Популярные книги
Чужак
1. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Артефактор. Шаг в неизвестность
1. Артефактор
Фантастика:
фэнтези
боевая фантастика
попаданцы
6.12
рейтинг книги
Врубель
Жизнь в искусстве
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Недотепа
Фантастика:
фэнтези
5.80
рейтинг книги
Кодекс Крови. Книга V
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Твое сердце будет разбито. Книга 1
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Память льда
3. «Малазанская империя»
Фантастика:
фэнтези
6.00
рейтинг книги
Проданная Истинная. Месть по-драконьи
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Гром Раскатного. Том 3
3. Штормовой Предел
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барон
5. Ученик
Фантастика:
фэнтези
5.60
рейтинг книги
Дважды одаренный. Том VI
6. Дважды одаренный
Фантастика:
аниме
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
Т. 03 Гражданин Галактики
3. Отцы-основатели. Весь Хайнлайн
Фантастика:
научная фантастика
7.00
рейтинг книги
Третий
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Клан
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60