67 lines
2.1 KiB
JavaScript
67 lines
2.1 KiB
JavaScript
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`);
|
|
}
|
|
|
|
|
|
|
|
|
|
|