¿Cómo haría para seleccionar solo un cierto número de líneas con este código? Tengo una comprensión aproximada del uso de la line pero a partir de ese momento no tengo idea de cómo asegurarme de que solo obtenga, por ejemplo, 5 líneas de cuentas del archivo txt o 10 cuentas, etc.
El siguiente código es de una pregunta anterior que puse aquí: Cómo obtener más de 1 conjunto de Usuario: Pase de Cuentas.txt
const readline = require("readline"); const fs = require("fs"); const rl = readline.createInterface({ input: fs.createReadStream(__dirname + "/accounts.txt"), }); rl.on("line", (line) => { const [username, password] = line.split(':'); console.log(`${username}${password}`) });Encontré una solución "Posible" pero no deja de contar cuando se alcanza el número requerido.
const line_counter = ((i = 0) => () => ++i)(); rl.on("line", (line, num = line_counter()) => { console.log(num) if (num === 10) { const [username, password] = line.split(':'); console.log(`${username}${password}`); console.log("10") } //extra code })Pequeña explicación: tengo un sistema de configuración donde funciona así:
config = { "yourroleid": 1500, "yourroleid": 75, "yourroleid": 50, "yourroleid": 20, "yourroleid": 10, "yourroleid": 5 }con esto en mente, la persona con dicho rol (roleid) solo podría obtener, por ejemplo, 5 cuentas o 10 cuentas de la lista. y SOLO haría eso en lugar de un "spam" continuo de cuentas.
Para lograr el objetivo de salir antes de la línea de lectura, querrá usar la sintaxis for await for await (const line of target) { en lugar del .on("line", .
let limit = 0; for await (const line of rl) { limit++; const [user, pass] = line.split(":"); //do stuff if (limit === 10) break; }Editado en base a comentarios aclaratorios/conversación de objetivos