Skip to content

Commit

Permalink
adicionei ponto e vírgula no fim dos comandos
Browse files Browse the repository at this point in the history
  • Loading branch information
Gabriel de Freitas committed Dec 24, 2018
1 parent 718dce6 commit adea7ed
Showing 1 changed file with 78 additions and 78 deletions.
156 changes: 78 additions & 78 deletions Solução/index.js
Original file line number Diff line number Diff line change
@@ -1,63 +1,63 @@
/*Nome: Gabriel de Freitas Garcia
Objetivo: Fazer um programa em node.js que receba um arquivo input.csv, processe os dados e imprima em um arquivo outpu.json*/
function main(){
var fs = require("fs")
var arquivo,linhas,aluno
var alunos = []
var header = []
arquivo = fs.readFileSync("input.csv","utf-8")
linhas = arquivo.split(/\r?\n/)
header = separar(linhas[0])
linhas.splice(0,1)
var fs = require("fs");
var arquivo,linhas,aluno;
var alunos = [];
var header = [];
arquivo = fs.readFileSync("input.csv","utf-8");
linhas = arquivo.split(/\r?\n/);
header = separar(linhas[0]);
linhas.splice(0,1);
for (var i = 0; i < linhas.length;i++){
if (linhas[i] == "" || linhas[i] == null || linhas[i] == undefined){
continue
continue;
}
aluno = cria_objeto(linhas[i],header)
aluno = cria_objeto(linhas[i],header);
if (aluno.classes.length == 1){
aluno.classes = aluno.classes[0]
aluno.classes = aluno.classes[0];
} else if (aluno.classes.length == 0){
aluno.classes = ""
aluno.classes = "";
}
alunos = coloca(alunos,aluno)
alunos = coloca(alunos,aluno);
}
if (alunos.length == 1){
alunos = alunos[0]
alunos = alunos[0];
} else if (alunos.length == 0){
alunos = ""
alunos = "";
}
fs.writeFileSync("output.json",JSON.stringify(alunos,null,1),"utf-8")
fs.writeFileSync("output.json",JSON.stringify(alunos,null,1),"utf-8");
//console.log(JSON.stringify(alunos,null,4))
}
function separar(string){
var aspas1 = /\".+/, aspas2 = /.+\"/
var texto = string.split(",")
var aspas1 = /\".+/, aspas2 = /.+\"/;
var texto = string.split(",");
for (var i = 0; i < texto.length; i++){
if (aspas1.test(texto[i])){
while(true){
if (i === (texto.length)-1){
break
break;
}
if (aspas2.test(texto[i+1])){
texto[i] = texto[i] + texto[i+1]
texto.splice(i+1,1)
texto[i] = texto[i].substr(1).slice(0, -1)
texto[i] = texto[i] + texto[i+1];
texto.splice(i+1,1);
texto[i] = texto[i].substr(1).slice(0, -1);
break
} else {
texto[i] = texto[i] + texto[i+1]
texto.splice(i+1,1)
texto[i] = texto[i] + texto[i+1];
texto.splice(i+1,1);
}
}
}
}
return texto
return texto;
}
function cria_objeto(aluno,header){
const PNF = require('google-libphonenumber').PhoneNumberFormat;
const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance()
var name = /fullname/i, eid = /eid/i, num = /\d+/,classe = /class/i, sala = /sala \d+/i, correio = /email/i
var email = /\w+@\w+\.[a-z]+\.?[a-z]{0,2}/, telefone = /phone/i, invisivel = /invisible/i, ver = /see_all/i, letra = /[a-zA-Z]+/,especiais = /[();:!#$*&£\[\]\{\}+=]+/
var modelo, endereço
const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
var name = /fullname/i, eid = /eid/i, num = /\d+/,classe = /class/i, sala = /sala \d+/i, correio = /email/i;
var email = /\w+@\w+\.[a-z]+\.?[a-z]{0,2}/, telefone = /phone/i, invisivel = /invisible/i, ver = /see_all/i, letra = /[a-zA-Z]+/,especiais = /[();:!#$*&£\[\]\{\}+=]+/;
var modelo, endereço;
modelo = {
fullname : "",
eid: "",
Expand All @@ -66,90 +66,90 @@ function cria_objeto(aluno,header){
invisible: false,
see_all: false
}
aluno = separar(aluno)
aluno = separar(aluno);
for (var i = 0; i < header.length; i++){
endereço = {
type: "",
tags: [],
address: ""
}
if (aluno[i] === ""){
continue
continue;
}
if (name.test(header[i])){
modelo.fullname = aluno[i]
modelo.fullname = aluno[i];
} else if (eid.test(header[i])){
if(num.test(aluno[i])){
modelo.eid = num.exec(aluno[i])[0]
modelo.eid = num.exec(aluno[i])[0];
}
} else if (classe.test(header[i])){
modelo = adicionar(endereço,aluno[i],sala,modelo,1)
modelo = adicionar(endereço,aluno[i],sala,modelo,1);
} else if (correio.test(header[i])){
if (especiais.test(aluno[i])){
continue
continue;
}
endereço.type = "email"
var tags = header[i].split(" ")
endereço.type = "email";
var tags = header[i].split(" ");
for (var j = 0; j < tags.length; j++){
if (correio.test(tags[j])){
continue
continue;
} else{
if (!busca(tags[j],endereço.tags))
endereço.tags.push(tags[j])
endereço.tags.push(tags[j]);
}
}
modelo = adicionar(endereço,aluno[i],email,modelo,2)
modelo = adicionar(endereço,aluno[i],email,modelo,2);
} else if (telefone.test(header[i])){
if ((letra.test(aluno[i]))){
continue
continue;
}
endereço.type = "phone"
var tags = header[i].split(" ")
endereço.type = "phone";
var tags = header[i].split(" ");
for (var j = 0; j < tags.length; j++){
if (telefone.test(tags[j])){
continue
continue;
} else{
if (!busca(tags[j],endereço.tags))
endereço.tags.push(tags[j])
endereço.tags.push(tags[j]);
}
}
var number = phoneUtil.parseAndKeepRawInput(aluno[i], 'BR')
var number = phoneUtil.parseAndKeepRawInput(aluno[i], 'BR');
if (phoneUtil.isValidNumber(number)){
endereço.address = phoneUtil.format(number, PNF.E164).replace("+","")
modelo.addresses = funde(modelo.addresses,endereço)
endereço.address = phoneUtil.format(number, PNF.E164).replace("+","");
modelo.addresses = funde(modelo.addresses,endereço);
}
} else if (invisivel.test(header[i])){
if ((aluno[i] == true || aluno[i] == "yes" || num.test(aluno[i])) && (aluno[i] != 0 && aluno[i] !== "false" && aluno[i] != "no" && aluno[i] != false)){
modelo.invisible = true
modelo.invisible = true;
}
} else if (ver.test(header[i])){
if ((aluno[i] == true || aluno[i] == "yes" || num.test(aluno[i])) && (aluno[i] != 0 && aluno[i] !== "false" && aluno[i] != "no" && aluno[i] != false)){
modelo.see_all = true
modelo.see_all = true;
}
}
}
return modelo
return modelo;
}
function adicionar(endereço,aluno,regex,modelo,tipo){
var cópia
var cópia;
while (regex.test(aluno)){
cópia = {
type: endereço.type,
tags: endereço.tags,
address: ""
}
var corresponde = regex.exec(aluno)[0]
var corresponde = regex.exec(aluno)[0];
if (tipo === 1){
if (!busca(corresponde,modelo.classes)){
modelo.classes.push(corresponde)
modelo.classes.push(corresponde);
}
} else {
cópia.address = corresponde
modelo.addresses = funde(modelo.addresses,cópia)
cópia.address = corresponde;
modelo.addresses = funde(modelo.addresses,cópia);
}
aluno = aluno.replace(corresponde,"")
aluno = aluno.replace(corresponde,"");
}
return modelo
return modelo;
}
function coloca(lista,aluno){
var i ,j
Expand All @@ -158,66 +158,66 @@ function coloca(lista,aluno){
for (j = 0; j < aluno.classes.length; j++){
if (!busca(aluno.classes[j],lista[i].classes)){
if (!Array.isArray(lista[i].classes)){
lista[i].classes = [lista[i].classes]
lista[i].classes = [lista[i].classes];
}
lista[i].classes.push(aluno.classes[j])
lista[i].classes.push(aluno.classes[j]);
}
}
for (j = 0; j < aluno.addresses.length; j++){
lista[i].addresses = funde(lista[i].addresses,aluno.addresses[j])
lista[i].addresses = funde(lista[i].addresses,aluno.addresses[j]);
}
if (lista[i].invisible === true || aluno.invisible === true){
lista[i].invisible = true
lista[i].invisible = true;
}
if (lista[i].see_all === true || aluno.see_all === true){
lista[i].see_all = true
lista[i].see_all = true;
}
return lista
return lista;
}
}
lista.push(aluno)
return lista
lista.push(aluno);
return lista;
}
function busca(elemento,lista){
var i
var i;
if (lista === undefined || lista === null){
lista = []
lista = [];
}
for (i = 0; i < lista.length; i++){
if (elemento == lista[i]){
return true
return true;
}
}
return false
return false;
}
function funde(lista,endereço){
if (lista === undefined || lista === null){
lista = []
lista = [];
}
var x = busca_endereço(lista,endereço)
if (lista.tags === undefined || lista.tags === null){
lista.tags = []
lista.tags = [];
}
if (x < 0){
lista.push(endereço)
return lista
lista.push(endereço);
return lista;
} else{
for (var i = 0; i < endereço.tags.length; i++){
if (!busca(endereço.tags[i],lista.tags)){
lista[x].tags.push(endereço.tags[i])
lista[x].tags.push(endereço.tags[i]);
}
}
return lista
return lista;
}
}
function busca_endereço(lista,endereço){
var i
for (i = 0; i < lista.length; i++){
if (endereço.address == lista[i].address){
return i
return i;
}
}
return -1
return -1;
}


Expand Down

0 comments on commit adea7ed

Please sign in to comment.