[ruby-it] direttamente a fine file?
david
david.palm a iperbole.bologna.it
Mer 18 Apr 2007 11:24:30 CEST
Magari potresti usare ´tail -n 1´? Cioè chiamare un commando shell e
prendere il pezzo che ti serve dal output...
(cmq il problema rimane: se "tail" sa trovare la fine senza tenere in
RAM tutto il file, perché Ruby e File non lo sa fare?)
Giovanni Intini wrote:
> Hai due strade: 1) Iterare linea per linea con File.readline oppure 2)
> usare seek spostandoti ad una distanza dalla fine abbastanza generosa
> e poi iterare da lì.
>
> Sicuramente qualcuno più intelligente di me troverà una soluzione
> migliore .)
>
> Il giorno 18/apr/07, alle ore 10:58, Mauro Sanna ha scritto:
>
>> Il giorno mer, 18/04/2007 alle 10.49 +0200, Giovanni Intini ha scritto:
>>> Last è un metodo di Array. Readlines restituisce un array che
>>> contiene tutto il file, splittato per righe. Per avere info su questi
>>> metodi puoi usare "ri Array" e "ri File" dalla linea di comando.
>>>
>>> c'è File#seek che ti può portare direttamente a fine file, o a n byte
>>> dalla fine del File, ma non "all'inizio dell'ultima riga del file".
>>
>> si ho visto File#seek ma per leggere i primi n caratteri dell'ultima
>> riga devo conoscerne la lunghezza, siccome non posso sapere quanto sono
>> lunghe le singole righe del file mi sembra che la soluzione migliore sia
>> usare readlines.
>> Certo pero' che riempirmi la memoria, il file e' abbastanza grosso, solo
>> per leggere alcuni caratteri della prima e dell'ultima riga mi rompe un
>> po'.
>>
>> _______________________________________________
>> Ml mailing list
>> Ml a lists.ruby-it.org
>> http://lists.ruby-it.org/mailman/listinfo/ml
>
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>
--
"When all you have is a hammer, everything looks like a nail"
Maggiori informazioni sulla lista
Ml