Hi all,
I have a problem that I am struggling with.
Problem I have is that I want to insert text in a text file after a
specific line.
My thought was to copy the original file line by line and when I got to
a specific line it would insert the text that I wanted, but I did not
manage to do this so I went another way, like this
File.open(‘test.bak’, ‘r+’) do |file|
file.each do |line|
if line =~ /</DHCPServer>/ #trigger
file.seek(-line.size, IO::SEEK_CUR)
file.puts (“Hello”) #text to input
end
end
end
But when I use this, first it manipulates the original file and it
deletes some of the letter of the trigger “”
So can someone guide me to the right path?
Regards
Fox
Hi fox,
On 16/04/12 15:57, fox foxmaster wrote:
Hi all,
I have a problem that I am struggling with.
Problem I have is that I want to insert text in a text file after a
specific line.
My thought was to copy the original file line by line and when I got to
a specific line it would insert the text that I wanted
This sounds like the approach that I would use. Open a source file to
read, open the destination file. Read it in a line at a time, write it
out. Make changes as you go, adding lines, removing them, etc. At EOF,
close both files. Remove the old source and replace with the destination
if desired. A Variation includes holding the whole new file in memory
and writing it out in one step at the end.
, but I did not
manage to do this
Do you have your attempt at this to share? Someone might be able to spot
the problem if you post it.
But when I use this, first it manipulates the original file and it
deletes some of the letter of the trigger “”
So can someone guide me to the right path?
Regards
Fox
Garth
Hi,
Sorry no I don’t have that saved 
/Fox
Hi all,
Does anyone have a solution on how to either see the problems with the
above code or a solution on how to do it with reading line by line and
inserting the text after a specific line?
Regards
Fox
On Mon, Apr 16, 2012 at 9:09 PM, fox foxmaster [email protected]
wrote:
Hi all,
Does anyone have a solution on how to either see the problems with the
above code or a solution on how to do it with reading line by line and
inserting the text after a specific line?
Something like this should work:
File.open(“destination.txt”, “w”) do |out|
File.foreach(“original.txt”) do |line|
out.puts line
if line =~ /YOUR_REGEX/
out.puts “THE NEW LINE”
end
end
end
Jesus.
“Jesús Gabriel y Galán” [email protected] wrote in post
#1056852:
On Mon, Apr 16, 2012 at 9:09 PM, fox foxmaster [email protected]
wrote:
Hi all,
Does anyone have a solution on how to either see the problems with the
above code or a solution on how to do it with reading line by line and
inserting the text after a specific line?
Something like this should work:
File.open(“destination.txt”, “w”) do |out|
File.foreach(“original.txt”) do |line|
out.puts line
if line =~ /YOUR_REGEX/
out.puts “THE NEW LINE”
end
end
end
Jesus.
So simple so beautiful 
Big thanks to you Jesus
Regards
Fox