Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
Angular: forma eficiente de analizar 10000 filas de archivos csv/tsv

Estoy buscando una forma más suficiente (o lib) para analizar csv/tsv que contiene alrededor de 5000 ~ 10000 filas (usándola para representar una tabla con desplazamiento virtual cdk para obtener una vista previa del archivo). Mi implementación actual es bastante banana para esa cantidad de filas.

 this.httpClient.get(this.dataSrc, { headers: { Accept: 'text/plain' }, responseType: 'text' }).subscribe(res => { // handles tsv or csv content const lines = res.split(/\r|\n/); const separator = lines[0].indexOf('\t') !== -1 ? '\t' : ','; this.parsedCSV = lines.map(l => l.split(separator)); });
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Se ve bien, pero analizar una gran cantidad de datos congelará el hilo. Debe dormir y esperar el hilo para que el analizador no se congele.

Así es como yo lo haría, echa un vistazo.

 const sleep = (msTime) => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(); }, msTime); }); } const parse(csv, onProgress) => { const lineSplitter = RegExp('\r|\n', 'g'); const result = [] var index =0; let match; // split one each time, so the thread won't freeze while ((match = lineSplitter.exec(csv)) !== null) { const line = match[0]; const separator = line.indexOf('\t') !== -1 ? '\t' : ','; result.push(line.split(separator)) if (index % 30 === 0) await sleep(10); // This will make sure the thread won't freeze if (onProgress) await onProgress((index / lines.length) * 100); index++; } return result; }

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda