Dalej męczę irc bota.
Kolejnym pomysł wymaga operowania na plikach.
Z dodawaniem do pliku i odczytywaniem całego pliku nie mam problemu.
Ale jak odczytać lub usunąć wybrany fragment pliku, żeby ten nie stracił ciągłości?
Na przykład mam plik kwiatki.txt o treści:
fiołki
róże
stokrotka
I chcę z tej listy usunąć tylko “róże”. Jak to osiągnąć? Czego użyć?
Kminiłem z delete_if ale nie dało to rezultatu.
Najprościej by było go całego wczytać, usunąć wybrany fragment i ponownie zapisać. Kiedyś pytałem się o to samo w perlu i kolega powiedział, że bezpośrednio bez zapisu do pamięci się nie da usunąć.
kwiatytab = []
kwiatki = File.open("kwiatki.txt", "a+")
kwiatki.readlines.each { |l|
if !l.match($5)
kwiatytab << l
end
}
kwiatki.close
kwiatki = File.open("kwiatki.txt", "w+")
kwiatki << kwiatytab
kwiatki.close
$5 to od wyrażenia regularnego. Przyjmuje wartość nazwy kwiata np: stokrotka.
kwiatytab = []
kwiatki = File.open("kwiatki.txt", "a+")
kwiatki.readlines.each { |l|
if !l.match($5)
kwiatytab << l
end
}
kwiatki.close
kwiatki = File.open("kwiatki.txt", "w+")
kwiatytab.each { |l| kwiatki.write(l) }
kwiatki.close
Spróbuj tak, ale jestem prawie pewien , że się o to $5 rzuca. daj zam jakiś napis “kot” np i zobacz
spoko niewiele tu postów z Ruby, dobrze czasem kawałek kodu napisać ;] Niestety Rails czynią ludzi tak leniwymi, że nie wiele osób szczególnie na początku interesuje się samym językiem.