Aktualnie pracuję z node.js, aby utworzyć bota IRC. Bot pozwala użytkownikom dodawać linki do utworów do bazy danych. Za każdym razem ktoś twierdzi, utwór, jest on dodawany do nowej linii „shuffle.txt” jako takie:Znajdź ciąg w pliku Txt, Usuń całą linię
user1,The Beatles,Yesterday,(youtube link)
user2,The Rolling Stones,Angie,(youtube link)
user1,The Bealtes,Yellow Sumbarine,(youtube link)
Zauważ, że niektóre informacje user1 literówka w swoim najnowszym dodatkiem. Próbuję wykonać polecenie UNDO, aby użytkownik mógł usunąć ostatnio wprowadzoną linię. Planuję to zrobić, znajdując najnowsze pojawienie się ich nazwy w shuffle.txt i usuwając całą linię, na której się znajduje. Oto moja wiadomość słuchacz:
bot.addListener('message', function(from, to, message) {
if (message.indexOf(config.prefix) == 0) {
message = message.slice(1);
var token = message.split(" ");
if (token[0] == 'undo') {
//find and delete
}
}
});
wprowadzając komendę użytkownik jest przechowywana jako from
Jestem zakładając, będę musiał zrobić coś na wzór tego:
var songList = fs.readFileSync('shuffle.txt', 'utf8');
var position = songList.indexOf(from);
if (position != -1) { //if 'from' found
//find LAST occurrence of 'from'
//get length from here to next occurrence of '\n'
//substr(length + 1)
fs.writeFile('shuffle.txt', songList, function(err) {
if (err) {
console.log (err);
}
}
I "Jestem nowy w JavaScript i to jest mój pierwszy raz przy użyciu pliku node.js, więc mogę skorzystać z każdej pomocy, jaką mogę uzyskać! Dziękuję wszystkim.
EDYCJA: Należy również zwrócić uwagę, że nie potrzebuję pomocy w rozpoznawaniu poleceń. Potrzebuję tylko pomocy w znalezieniu/usunięciu części. Twoje zdrowie!
Dzięki za szybką reakcję! Jedyny problem, który tu widzę, to kod znajdujący OSTATNIĄ wystąpienie "user1" lub pierwszego? Jeśli usuniemy pierwsze wystąpienie, zamiast tego usuwam ich najstarsze zgłoszenie, a nie najnowsze. Jeszcze raz dziękuję! – Santi
Tak, tak, na nim – Mosho
Jeez jesteś szybki, pomoc jest bardzo doceniona. Niestety pracuję nad tym botem od 3PM i jest teraz 5:23, muszę się trochę przespać. Sprawdzę jutro, aby poinformować Cię, jak to działa! Pozdrawiam! – Santi