http://stackoverflow.com/questions/10164597/how-would-you-implement-tail-eff... http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/tail.c I would work with the growing buffer read backwards. It would be great fun doing that in Pharo. On 27 Jun 2014, at 18:50, phil@highoctane.be wrote:
Thanks.
But this would give me the 200 last chars. I am interested in the 200 last lines.
Now, I did this:
command := 'tac ', file fullName, ' | head -200'. ^ (PipeableOSProcess command: command) output.
which did the trick but isn't portable at all (Linux here).
I had a look at RemoteString as well.
Phil
On Fri, Jun 27, 2014 at 6:21 PM, Guillermo Polito <guillermopolito@gmail.com> wrote: If you have a MultiByteFileStream you can do
stream position: stream size - 200. stream next: 200.
Have a look at RemoteString, which is the class used to read the source from the source and changes files (without loading all of them into memory)
On Fri, Jun 27, 2014 at 6:15 PM, phil@highoctane.be <phil@highoctane.be> wrote: I wonder how you guys would read the last n lines from a file in Pharo without reading through the whole thing.
Is there code doing just that somewhere?
The code I have is a shell script doing a 'tac file | tail -200 > /temp/something'
I can always do that through OSProcess but wondered if there was something available.
Reading through with a 200-entries FIFO circular buffer seems a bit silly to do.
TIA Phil