Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var str = '';
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var ts = fso.OpenTextFile(WSH.Arguments(1));
- while(!ts.AtEndOfStream)
- str+=ts.ReadLine();
- ts.Close();
- function caesarShift (str, amount, alph_len)
- {
- if (amount < 0)
- {
- amount = amount + alph_len;
- }
- var output = '';
- for (var i = 0; i < str.length; i ++)
- {
- var c = str.charAt(i);
- if (c.match(/[a-z]/i))
- {
- var code = str.charCodeAt(i);
- if ((code >= 65) && (code <= 90))
- {
- code += 32;
- }
- c = String.fromCharCode(((code - 97 + amount) % alph_len) + 97);
- }
- output += c;
- }
- return output;
- };
- //WSH.echo(caesarShift('abcbbac', 2, 3));
- var freq = new Array();
- var input = '';
- var ts = fso.OpenTextFile(WSH.Arguments(0));
- while(!ts.AtEndOfStream)
- {
- input += ts.ReadLine();
- input += ' ';
- }
- ts.Close();
- var array = input.split(' ');
- j = 0;
- while(j < array.length-1)
- {
- freq[array[j].charCodeAt(0)+32] = array[j+1];
- j+=2;
- }
- /*for (var e in freq)
- WSH.echo(e+ ' ' + freq[e]);*/
- function make_freq(str)
- {
- var result = new Array();
- var count = 0;
- for (var t = 0; t < str.length; t++)
- {
- var c = str.charAt(t);
- if (c.match(/[a-z]/i))
- {
- result[c.charCodeAt(0)] = 0;
- count++;
- }
- }
- for (var t = 0; t < str.length; t++)
- {
- var c = str.charAt(t);
- if (c.match(/[a-z]/i))
- {
- result[c.charCodeAt(0)]++;
- }
- }
- for (var e in result)
- {
- result[e] = result[e] /count *100;
- }
- return result;
- }
- /*var r = make_freq('abab');
- for (var e in r)
- WSH.echo(e+ ' ' + r[e]);*/
- function min(arr)
- {
- min = arr[0];
- index = 0;
- WSH.echo(arr.length);
- for (var e = 0; e<arr.length; e++)
- {
- WSH.echo(arr[e]);
- if (arr[e] < min)
- {
- min = arr[e];
- index = e;
- }
- }
- return index;
- }
- function caesarDescription(str, alph_len)
- {
- var fact_freq = make_freq(str);
- for (var e in fact_freq)
- WSH.echo(e+ ' ' + fact_freq[e])
- for (var e in freq)
- WSH.echo(e+ ' ' + freq[e])
- var arr = new Array();
- for (var shift = 0; shift < alph_len; shift++)
- {
- sum = 0;
- for (var j = 0; j< alph_len; j++)
- {
- sum += Math.pow((fact_freq[97+j] - freq[(97+j+shift)%alph_len]),2);
- }
- arr.push(sum);
- }
- WSH.echo(arr.join(' '));
- var new_shift = min(arr);
- WSH.echo(new_shift);
- var out = '';
- for (var i =0; i<str.length; i++)
- {
- out += String.fromCharCode(str.charCodeAt(i)+new_shift);
- }
- return out;
- }
- var shift_str = caesarShift(str, 4, 26);
- //WSH.echo(shift_str);
- var descr_str = caesarDescription(shift_str, 26);
- //WSH.echo(descr_str);
- var ts = fso.OpenTextFile(WSH.Arguments(2), 2);
- ts.WriteLine(descr_str);
- ts.Close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement