我将如何只使用此代码选择一定数量的行?
How would I go about only selecting a certain number of lines with this code?
我如何使用这段代码只选择一定数量的行?
我对使用 line
有一个粗略的了解,但从那时起我不知道如何确保它只从 txt 文件中获取例如 5 行帐户或 10 个帐户等....
下面的代码来自我之前在这里提出的一个问题:
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}`)
});
我找到了一个“可能”的解决方案,但它不会在达到所需数量时停止计数。
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
})
小说明:
我有一个配置系统,它是这样的:
config = {
"yourroleid": 1500,
"yourroleid": 75,
"yourroleid": 50,
"yourroleid": 20,
"yourroleid": 10,
"yourroleid": 5
}
考虑到这一点,具有所述角色 (roleid) 的人只能从列表中获得例如 5 个帐户或 10 个帐户。
而且它只会做那么多,而不是连续的帐户“垃圾邮件”。
为了实现提前退出 readline 的目标,您需要使用 for await (const line of target) {
语法而不是 .on("line",
方法。
let limit = 0;
for await (const line of rl) {
limit++;
const [user, pass] = line.split(":");
//do stuff
if (limit === 10) break;
}
根据澄清评论/目标对话进行编辑
我如何使用这段代码只选择一定数量的行?
我对使用 line
有一个粗略的了解,但从那时起我不知道如何确保它只从 txt 文件中获取例如 5 行帐户或 10 个帐户等....
下面的代码来自我之前在这里提出的一个问题:
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}`)
});
我找到了一个“可能”的解决方案,但它不会在达到所需数量时停止计数。
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
})
小说明: 我有一个配置系统,它是这样的:
config = {
"yourroleid": 1500,
"yourroleid": 75,
"yourroleid": 50,
"yourroleid": 20,
"yourroleid": 10,
"yourroleid": 5
}
考虑到这一点,具有所述角色 (roleid) 的人只能从列表中获得例如 5 个帐户或 10 个帐户。 而且它只会做那么多,而不是连续的帐户“垃圾邮件”。
为了实现提前退出 readline 的目标,您需要使用 for await (const line of target) {
语法而不是 .on("line",
方法。
let limit = 0;
for await (const line of rl) {
limit++;
const [user, pass] = line.split(":");
//do stuff
if (limit === 10) break;
}
根据澄清评论/目标对话进行编辑