Inhalt von File-Buffer



  • Hallo,

    ich habe folgenden source, um aus mehreren Dateien eine zu machen, was auch einwandfrei funktionier, nun muss ich aber noch nach der ca. 5ten Zeile (in der immer steht ("hier bitte Text einfuegen:") der ersten Datei etwa 10 Zeilen anhaengen, wie koennte ich das am besten loesen?

    ofstream  outps(outfile.c_str(), ios::out);
    
    while (currN != lastN) 
    {
       string    infile = (*currN)->getFilename();
       ifstream  inps (infile.c_str());
    
       if (currN==Nlist.begin) {
    
    	if(fline=="hier bitte Text einfuegen:"
    	.....
    
       } else {
    	inps.seekg (0, ios::end);
    	fsize = inps.tellg();
    	inps.seekg(0, ios::beg);
    
    	buffer = new char [fsize];
    
    	inps.read(buffer, fsize);
    	outps.write(buffer, fsize);
    
    	inps.close();
    
    	delete buffer;
    
    	currN++;
    	}
    	outps.close();
    

    Kann ich den Puffer irgendwie verkleinern oder erweitern mit dem anzufuegenden Text oder muss ich einen weiteren anderen Filestream verwenden?

    Danke Tim



  • Ich würde die erste Datei - im Gegensatz zu den anderen - Zeile für Zeile einlesen und jede Zeile mit Deinem Suchstring vergleichen. Bei Nicht-Übereinstimmung die Zeile in die Zieldatei schreiben, bei Übereinstimmung erst die Zeile schreiben, dann die 10 einzufügenden Zeilen, dann weiter im Text mit lesen/schreiben.
    Die übrigen Dateien kannst Du dann ja wie gehabt als Ganzes einlesen und schreiben.


Anmelden zum Antworten