How to open Text File and then insert line in first position?

Hi,

I need to add a header to files, but I didn't find how open files in append
mode ('a') but positioned in first position.
Does anyone know how to do that?

Thanks

···

--
Pablo Q.

Pablo Q. wrote:

Hi,

I need to add a header to files, but I didn't find how open files in
append
mode ('a') but positioned in first position.
Does anyone know how to do that?

Thanks

I would write the headers to a new file and then the content.
Then move the file over to the old file.

Easier to do it in shell (linux/mac/unix)
  echo $header > tmpfile
  cat oldfile >> tmpfile
  mv tmpfile oldfile

If you need to do it in ruby see Open file, get first line, delete first line close file - Ruby - Ruby-Forum
for related discussion. Last post (at this time) by Erik has the sort
of code you need - just need to modify it a little.

There is this 'r+' mode which allows you to write to other parts of the
file besides appending but I don't think it's going to help. Someone
might want to pick me up on that.

Regards,
Daniel

···

--
Posted via http://www.ruby-forum.com/\.

Try this:

file_to_read = '/path/to/file.txt'
header = "Text to put at top of file\n\n"
file = IO.read(file_to_read)
open(file_to_read, 'w') { |f| f << header << file}

Cheers,

Craig

···

On Aug 26, 8:11 am, "Pablo Q." <paqs140...@gmail.com> wrote:

[Note: parts of this message were removed to make it a legal post.]

Hi,

I need to add a header to files, but I didn't find how open files in append
mode ('a') but positioned in first position.
Does anyone know how to do that?

Thanks

--
Pablo Q.

Thanks to both,

This is what I was looking for.

···

2008/8/26 Craig <cwilliams@easynewsletters.net>

On Aug 26, 8:11 am, "Pablo Q." <paqs140...@gmail.com> wrote:
> [Note: parts of this message were removed to make it a legal post.]
>
> Hi,
>
> I need to add a header to files, but I didn't find how open files in
append
> mode ('a') but positioned in first position.
> Does anyone know how to do that?
>
> Thanks
>
> --
> Pablo Q.

Try this:

file_to_read = '/path/to/file.txt'
header = "Text to put at top of file\n\n"
file = IO.read(file_to_read)
open(file_to_read, 'w') { |f| f << header << file}

Cheers,

Craig

--
Pablo Q.