It should be trivial with XStream

2014-06-27 21:45 GMT+04:00 Sven Van Caekenberghe <s...@stfx.eu>:

>
> http://stackoverflow.com/questions/10164597/how-would-you-implement-tail-efficiently
> 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, p...@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 <
> guillermopol...@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, p...@highoctane.be <p...@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
> >
> >
> >
> >
>
>
>

Reply via email to