Estoy trabajando en un proyecto Angular en el que tengo que cargar un archivo .txt y luego analizar todas sus líneas en bucle sobre ellas. Usé esta paz de código, pero solo me devuelve un formato de texto como abrirlo en el bloc de notas y eso no es lo que quiero, mi objetivo es cada dato con el delimitador ; y consuela eso en una matriz de objetos ob.
este es mi código:
fileChangeListener($event: any): void { const file = $event.target.files[0]; let fileReader = new FileReader(); fileReader.onload = (e) => { let data = fileReader.result; console.log("FileREAAAAAAAAAAADER \n" + data); } fileReader.readAsText(file); esta es mi estructura de archivo .txt :
1234;06/07/22;06/07/22;VRT; ;31070;some String content;some String content; ;147.10;A;1234 1234;06/07/22;06/07/22;VRT; ;31070;some String content;some String content; ;147.10;A;1234 1234;06/07/22;06/07/22;VRT; ;31070;some String content;some String content; ;147.10;A;1234 1234;06/07/22;06/07/22;VRT; ;31070;some String content;some String content; ;147.10;A;1234 1234;06/07/22;06/07/22;VRT; ;31070;some String content;some String content; ;147.10;A;1234en la consola, el código que escribí se muestra como la estructura anterior, donde el resultado debería ser así:
Modifiqué su código para hacer una cadena [] [] como lo necesitaba.
Sin saber qué quiere hacer con los datos, es solo local para esa función.
dummyArr es lo que quieres :)
Lo mantuvo un poco soso para que pueda modificarlo según sus necesidades futuras.
¡Espero que esto ayude!
fileChangeListener(event: any): void { console.log("submitted here") const file = event.target.files[0]; let fileReader = new FileReader(); fileReader.onload = (e) => { let data = fileReader.result; console.log("FileREAAAAAAAAAAADER \n" + data); this.parseData(data) } fileReader.readAsText(file); } parseData(data: string | ArrayBuffer | null){ var dummyArr: string[][] = [] var eachLine = data?.toString().split('\n'); eachLine?.forEach((line: string) => { let arr = [] let str = "" for(var i = 0; i < line.length; i++){ if(line[i] == ';'){ arr.push(str) str = "" }else{ str += line[i] } } arr.push(str) dummyArr.push(arr) }) console.log(dummyArr); }