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('п', 'я');
}
//Функция для перевода строки из DOS- в Windows-кодировку
function DosToWin(s) {
var i,ss; //Объявляем переменные
//Проверяем, создан ли объект RusDict
if (typeof(RusDict)=='undefined')
//Если объект RusDict не создан, создаем его
MakeRusDict();
ss='';
for (i=0;i<s.length;i++) { //Цикл по всем символам в строке
if (RusDict.Exists(s.charAt(i))) //Проверяем наличие символа в словаре
//Преобразуем i-й символ в Windows-кодировку
ss+=RusDict.Item(s.charAt(i));
else ss+=s.charAt(i);
}
return ss;
}
/************* Начало *********************************************/
//Печатаем приглашение для ввода
WScript.StdOut.Write('Введите одну строку: ');
s = WScript.StdIn.ReadLine(); //Вводим строку с клавиатуры
WScript.StdOut.WriteBlankLines(1); //Печатаем пустую строку
WScript.StdOut.Write('Было введено: ');
//Преобразовываем введенную строку в Windows-кодировку
//и выводим ее на экран
WScript.StdOut.WriteLine(DosToWin(s));
/************* Конец *********************************************/
'*******************************************************************
' Имя: StdIn1.vbs
' Язык: VBScript
' Описание: Пример использования метода StdIn.WriteLine
'*******************************************************************
' Функция для перевода строки из DOS- в Windows-кодировку
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
'************* Начало *********************************************
Dim s
' Печатаем приглашение для ввода
WScript.StdOut.Write 'Введите одну строку: '
s = WScript.StdIn.ReadLine ' Вводим строку с клавиатуры
WScript.StdOut.WriteBlankLines 1 ' Печатаем пустую строку
WScript.StdOut.Write 'Было введено: '
' Преобразовываем введенную строку в Windows-кодировку
' и выводим ее на экран
WScript.StdOut.WriteLine DosToWin(s)
'************* Конец *********************************************
Используя метод WScript.StdIn.ReadAll
, можно ввести сразу несколько строк подряд, ввод при этом прекращается после нажатия клавиш <Ctrl>+<Z>. Из введенной таким образом переменной можно затем сформировать массив, содержащий все строки. Для этого в JScript применяется метод split
объекта string
, а в VBScript — одноименная внутренняя функция Split
(листинги 2.16 и 2.17).
StdIn.ReadAll
(JScript) /*******************************************************************/
/* Имя: StdIn2.js */
/* Язык: JScript */
/* Описание: Пример использования метода StdIn.ReadAll */
/*******************************************************************/
var 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('Љ', 'К');