473,602 Members | 2,811 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How to append text inside an existing file without overwrite?

1 New Member
Hi, I'm trying to add some strings inside a file in specific locations.
I'm opening a file with fopen and "r+a"

and after a while i'm trying to add strings that way:
Expand|Select|Wrap|Line Numbers
  1. char *line = (char *) malloc(MAX_LINE);
  2. while (fgets(line, sizeof(line), theFile) != NULL)
  3.     if (strstr(line, "I want to append here") != NULL)
  4.         fputs("My new string", theFile);
  5.  
But "My new string" will overwrite the next chars from the file.

example:
origin file:
a
b
c
I want to append here
d
e
fffffffffffffff fffffffffffff

overwrited file
a
b
c
I want to append here
My new string
fffffffffffffff fff


How can I deal with this problem?
Thanks in advanced,
Gil
Jan 8 '11 #1
1 13072
horace1
1,510 Recognized Expert Top Contributor
as far as I am aware there is no simple way of inserting records into the middle of a file without overwritting existing records, e.g. see example using fseek()
http://www.cplusplus.com/reference/c.../cstdio/fseek/
you could
(1) copy the file to another inserting the new record at the required place.
(2) read the file into an array - do all your insertions (shuffling the array to make room) - then when finished write it out
(3) if you are dealing with whole lines read the file into a linked list (each element is a line of text) - do the insertions into the list - when finished write the list out to a file
Jan 9 '11 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

2
19902
by: gukn9700 | last post by:
The following program opens a text file and wants to append new text to it, but everytime I run it, it returns me with "open file fail!". Can anybody help? #include <fstream> #include <iostream> #include <cstdlib> using namespace std;
2
25172
by: Nico Grubert | last post by:
Hi there, I would like to open an existing file that contains some lines of text in order to append a new line at the end of the content. My first try was: >>> f = open('/tmp/myfile', 'w') #create new file for writing >>> f.writelines('123') #write first line >>> f.close()
3
23944
by: Jonathan Buckland | last post by:
Can someone give me an example how to append data without having to load the complete XML file. Is this possible? Jonathan
0
2703
by: | last post by:
Use the method InsertAfter() from the XmlDocument class or AppendChild from XmlNode class. Here is a short example to use InsertAfter(). http://weblogs.asp.net/sonukapoor/articles/132854.aspx Sonu Kapoor Blog: http://weblogs.asp.net/sonukapoor/
3
10242
by: Tony | last post by:
Hi I am writing text to a fileusing the streamwriter writeline method. When creating the streamwriter it can be opened to append text to a file. Is there a way, not necessarily with streamwriter, that I can open a file and prepend text, so that the newly added data appears at the head of the file? Thanks
1
5758
by: ma740988 | last post by:
Trying to some of my reading on file manipulation (ifstream/ofstream/fstream) into action. So now consider. # include <iostream> # include <fstream> # include <cstring> # include <sstream> bool remove_and_create_if_exists( const std::string& filename
10
15033
blazedaces
by: blazedaces | last post by:
Alright guys, so the title explains exactly my goal. The truth is I'm going to be reading in a lot of data from an xml file. The file is too large and there's too much data to store in arraylists without running out of memory, so I'm reading and as I'm reading I'm going to write to a file. This is the thing though, I already can do this and have it done, but I want to modify the program so you can choose what data you want to take out. To...
1
1492
by: StanislavPetrov | last post by:
Is it possible to delete the text inside .txt file?And if so,how?
1
3006
by: Deshi | last post by:
Hi,. I am trying to append text into the RTF file, nothing seems to be working for me... here is the code FileStream fs = new FileStream("c:\\djj.rtf", FileMode.Append, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("Appending this text at the end of the file"); sw.Close();
0
7920
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8401
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8404
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8054
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8268
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6730
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
5867
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
1
1510
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1254
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.