"Howard" <al*****@hotmail.com> wrote in message
news:EP*******************@bgtnsc05-news.ops.worldnet.att.net...
"Stewart" <rs********@blueyonder.co.uk> wrote in message
news:ND*****************@fe2.news.blueyonder.co.uk ... ah - sorry for the lack of clarity in my last post. it was pretty late
when i worte this and i was really tired from trying to solve this prob.
what i meant was suppose i had a text file with a string like:
"halo 2 is out on 11th novemeber"
now if i were to move the file poitner along a bit and insert some text
(let's say "asgujdsgf") then, you'd have something like this as a
result: halo 2 is out on 11asgujdsgfber
what I WANT to do is insert a string into the text in a text file,
without overwriting the pre-existing text, like this:
"halo 2 is out on 11th asgujdsgnovemeber"
is this at all possible?
thanks again
The standard method is to read the file in, writing out to a new file all
the text up to the "insertion point", then writing out the text you're
inserting, then writing out the rest of the file. (But you're writing to
a different file, you understand. You can always rename the file(s), of
course, so that it looks like you're writing to the "same" file.)
One possible approach for single file implementation would be:
- copy string to circular buffer
- open and io stream for read/write
- find insertion point in io stream
- loop while !eof
- read char from stream
- push back char to buffer
- (over)write char to stream from front of circular buffer
- pop front
- loop while !buffer.empty()
- write char to stream from front of circular buffer
- pop front
Any comments from those more familiar with streams? Performance relative to
other methods would certainly need to be measured. I could see using this
approach when inserting relatively small string near the tail of a very
large file.
Jeff F