I want to know how to remove hyphens (-), and (|) from the table below to return a json from the table

Asked

Viewed 49 times

0

e

let arquivo = fs.readFileSync('meu_txt.txt','utf8')

let cells_arquivo = arquivo.split('\r\n').map(function(el) {
    return el.split(/[|]/)
})

let headings_arquivo = cells_arquivo.shift()

let obj_arquivo = cells_arquivo.map(function(el){
    let obj = {}
    for (let i = 0, l = el.length; i < l; i++) {
        obj[headings_arquivo[i]] = isNaN(Number(el[i])) ? el[i] : el[i]
    }
    return obj_gestao
})

let json_arquivo = JSON.stringify(obj)

found = obj_arquivo.forEach(el => {
    let values_arquivo = {}
    values_arquivo.nome = (el['NOME'])
    array_arquivo.push(values_arquivo)  
    return array_arquivo
})

1 answer

0

I admit I found it interesting to create the code for this:

const fs = require('fs');
const readline = require('readline');

const registroRegex = /(\|.*\|)+/g;
const dados = [];
let linhaAtual = 0;
let indices = null;

// Criando a interface para ler linha por linha
const rl = readline.createInterface({
  input: fs.createReadStream('meu_txt.txt', 'utf8'),
  crlfDelay: Infinity,
});

// Extrair os dados referentes a uma linha
function extrairDados(linha) {
  const dadosAtuais = [];
  let dado = '';
  for (let i = 0; i < linha.length; i += 1) {
    if (i !== 0 && linha[i] !== '|') {
      dado += linha[i];
    } else {
      // Remover os espaços extras em cada extremidade
      dado = dado.trim();
      dadosAtuais.push(dado);
      dado = '';
    }
  }
  return dadosAtuais;
}

// Usar a interface criada anteriormente para ler as linhas
rl.on('line', (linha) => {
  // Antes de tudo, garantir que a linha se trata de um registro
  if (linhaAtual > 2 && linha.match(registroRegex)) {
    if (indices === null) {
      indices = extrairDados(linha);
    } else {
      const dadoAtual = [];
      const coluna = extrairDados(linha);
      for (let i = 0; i < indices.length; i += 1) {
        dadoAtual.push({
          [indices[i]]: coluna[i],
        });
      }
      dados.push(dadoAtual);
    }
  }
  linhaAtual += 1;
}).on('close', () => {
  // Aqui temos o objeto final, com todos os dados
  console.log(dados);
});

Examples of entries:

-------------------------------------
|              TABELA               |
-------------------------------------
| ID |         NOME       |  CARGO  |
| 1  |         LUCIUS     |  SENIOR |
| 2  |         GABRIEL    | FRONTEND|
-------------------------------------

--------
|TABELA|
---------------
|ID|NOME|CARGO|
|1|LUCIUS|SENIOR|
|2|GABRIEL|FRONTEND|
--------------------

-------------------------------------
| TABELA |
-------------------------------------
|ID|NOME|CARGO|
| 1  |LUCIUS|  SENIOR |
| 2  |         GABRIEL    | FRONTEND|
-------------------------------------

Exit:

[
  [ { ID: '1' }, { NOME: 'LUCIUS' }, { CARGO: 'SENIOR' } ],
  [ { ID: '2' }, { NOME: 'GABRIEL' }, { CARGO: 'FRONTEND' } ]
]

Browser other questions tagged

You are not signed in. Login or sign up in order to post.