- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
const WCT_SYMBOLS = new Buffer('ABCDEFGO'); /*задаём строку для поиска
в ней символов*/
const WCT_LENGTH = 3;
const fs = require('fs');
/*функция для перевода целой части числа из 10-й в любую сс*/
function Cel(number, c, out, offset, length){
var pos = offset + length - 1;
number |= 0; /*берём целую часть от числа*/
do {
out[pos--] = WCT_SYMBOLS[number % c | 0]; /*повторяем пока число не будет равно нулю берём целую часть при
делении числа на основание и берём остаток + 1 от деления целой части на 16, записываем
результат посимвольно в строку out*/
number = number / c | 0;
} while (number != 0);
while(pos >= offset)
out[pos--] = WCT_SYMBOLS[0];
}
(function wctEditor() {
const argv = process.argv;
if(argv.length < 4) {
console.log('Not enough parameters!');
process.exit(1);
}
const input = argv[2], output = argv[3];
if(!fs.existsSync(input)) {
console.log('File not exist!');
process.exit(2);
}
const BUFFER_SIZE = 1024;
const f1 = fs.openSync(input, 'r');
const f2 = fs.openSync(output, 'w');
const I = new Buffer(BUFFER_SIZE);
const O = new Buffer(WCT_LENGTH * BUFFER_SIZE);
while(1) {
var readBytes = fs.readSync(f1, I, 0, I.length, null);
if(!readBytes) break;
for(var i=0; i<readBytes; ++i)
Cel(I[0], WCT_SYMBOLS.length, O, i * WCT_LENGTH, WCT_LENGTH);
fs.writeSync(f2, O, 0, readBytes * WCT_LENGTH, null);
}
fs.closeSync(f1);
fs.closeSync(f2);
})();
/* TODO -oUser -cConsole Main : Insert code here */