Text in Zeile Nr. einfügen

ThomasCH

Grünschnabel
Hallo zusammen,

ich habe hier begonnen an einer Funktion zu schreiben, welche Text in eine fest vorgegebene Zeile einer Textdatei einfügt:

Code:
bool write(int line, string zone, string named) {
fstream fin(named.c_str());
string buffer = "";
int i = 0;
while(!fin.eof()) {
    i++;
    getline(fin,buffer,'\n');
    if(i == line)
    fin << zone;
}
fin.close();
return true;
}

Anstatt nun den Text einzufügen verändert die Funktion die komplette Datei und löscht willkürlich Wörter.

Danke für die Hilfe
 
moin


Mit seekg kannst du an eine bestimmte Position in einer Datei gehen.

Hab leider keine Zeit dir besser zu helfen.


mfg
umbrasaxum
 
In Dateien auf der Platte direkt einfügen geht meines Wissens nicht. Ich würde die Datei bis zur Einfügeposition einlesen (in einen string oder stringstream als Buffer), dann an den Buffer den einzufügenden Text dranhängen, und zum Schluss noch den Rest der Datei. Dann würde ich den Buffer mit der Einfügung zurück auf die Platte schreiben, wobei die ursprüngliche Datei überschrieben wird.
 
Zurück