let fs = require('fs'); const tabla = {}; fs.readFile('./raw3anioData.json',(err, data) => { const miData = JSON.parse(data); crearData(miData); }); function crearData(data) { let datos = data["Hoja1"]; let indiceAnios = []; let indiceDatos = [undefined,undefined]; let cursosMap = {}; let anioActual = -1; /* datos contiene un Array con las filas, cada una de estas filas es un array con las posiciones. */ const DIAS = ["Lunes","Martes","Miercoles","Jueves","Viernes"]; const NOMBRES_ANIOS = "(primer | segundo | tercer | cuarto | quinto)"; const regexNombresAnios = new RegExp(NOMBRES_ANIOS,"i"); const regexHoras = new RegExp("\d\d\s*[:]\s*\d\d\s*[-]\s*\d\d\s*[:]\s*\d\d","i"); for (let index in datos) { let fila = datos[index]; for (let indexF in fila) { let celda = fila[indexF]; let horaActual = ""; let diaActual = 0; /* Revisa si es un inicio de anio */ if ((/semestre/i).test(celda) === true) { console.log("Celda semestre: " + celda); let nombreAnio = (regexNombresAnios.exec(celda))[0].trim(); console.log("Datos tras regex: '" + nombreAnio + "'"); anioActual++; indiceAnios.push(nombreAnio); tabla[nombreAnio] = {}; } /* Revisa la hora actual */ else if (regexHoras.test(celda)) { } else if ((/\w+\s?=\s?\w+/i).test(celda) === false) { if (indiceDatos[0] === undefined) indiceDatos[0] = index; } /* Mapea los cursos y sus abreviaturas en cursosMap para poder acceder a ellos facilmente */ else { if (indiceDatos[1] === undefined) indiceDatos[1] = index-1; let regex = /(\w+)(\s*=\s*)(\w+\s*)+(([(]\s?\w(,\w)*\s?[)]\s*)+(\w+\.?\s*)+)+/g; let datosRegex = regex.exec(celda); console.log("Datos tras regex\n" + celda + "\n" + datosRegex); } } } console.log(`Al final el obj es:\n\n${JSON.stringify(tabla)}\n\n`); }