Witam.
Mam plik o zawartości np:
A B C
D E F
G H I
I chcę wczytać to co jest pomiędzy A i G.
Mam taki kod:
file = File.open("plik.txt", "r")
file.each {|l| if file =(/A\s(.*)G/i).match(l)
then (puts #{$1}) end }
Jeśli chodzi o szukanie w jednej linii pliku, to działa…
Na kilku liniach działać nie chce.
Ma ktoś jakiś pomysł?
I oprócz tego jeśli po tym kodzie powyżej dodam file.close wywala mi błąd. Dlaczego?
Dzięki. Lecz jest problem… Mam dość spory plik.txt i wywala mi:
Stack overflow in regexp matcher:
Googlowałem co to, ale rozwiązania nie znalazłem.
Spotkał się ktoś z tym?
To wyżej to pod ruby 1.8.
Pod 1.9:
failed to allocate memory:
Mam: ruby 1.9.1p376 i ruby 1.8.7
Hmm może coś w kodzie jest nie tak skoro u Ciebie działa. Pokminię nad tym.
EDIT:
Wiem już co jest nie tak: plik. Na mniejszym pliku przykładowym czyta dobrze.
Ale na tym 1.8 mb wywala błąd. Więc skróciłem plik i działa.
Dzięki za pomoc.