<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Textfile Editieren]]></title><description><![CDATA[<p>Hi, ich versuche gerade eine Klasse zu erstellen, die bestimmte Werte in einer Textfile ändert, bestimmte Werte an bestimmten Stellen in der Textfile hinzufügt, etc.</p>
<p>Ich habe es bereits geschafft, eine Klasse zu erstellen, die es mir erlaubt, leicht bestimmte Werte aus einer Textfile zu holen.<br />
Also z.B wenn in der Textfile steht:</p>
<pre><code>Username = Z00t
</code></pre>
<p>dann kann ich mithilfe einer Funktion der Klasse, der ich einen Wert (in diesem Fall &quot;Username&quot; übergebe) und dann den in der Textfile äquivalenten Wert zurückbekomme (also &quot;Z00t&quot;).</p>
<p>Jetzt versuche ich, eine neue Klasse zu erstellen, die bei Übergabe eines Wertes (um bei dem Beispiel zu bleiben &quot;Username&quot;), den alten Wert in der Textfile (&quot;Z00t&quot;) mit einem neuen, ebenfalls übergebenen Wert (z.B &quot;Z00t2&quot;), ersetzt.</p>
<p>Leider habe ich bisher keinen Ansatz, wie ich beginnen könnte und vor allem, ob es überhaupt sinnvoll ist, das per Klasse zu lösen.<br />
Danke für jedes Feedback</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285450/textfile-editieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 06:58:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285450.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Apr 2011 20:03:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textfile Editieren on Wed, 20 Apr 2011 20:03:55 GMT]]></title><description><![CDATA[<p>Hi, ich versuche gerade eine Klasse zu erstellen, die bestimmte Werte in einer Textfile ändert, bestimmte Werte an bestimmten Stellen in der Textfile hinzufügt, etc.</p>
<p>Ich habe es bereits geschafft, eine Klasse zu erstellen, die es mir erlaubt, leicht bestimmte Werte aus einer Textfile zu holen.<br />
Also z.B wenn in der Textfile steht:</p>
<pre><code>Username = Z00t
</code></pre>
<p>dann kann ich mithilfe einer Funktion der Klasse, der ich einen Wert (in diesem Fall &quot;Username&quot; übergebe) und dann den in der Textfile äquivalenten Wert zurückbekomme (also &quot;Z00t&quot;).</p>
<p>Jetzt versuche ich, eine neue Klasse zu erstellen, die bei Übergabe eines Wertes (um bei dem Beispiel zu bleiben &quot;Username&quot;), den alten Wert in der Textfile (&quot;Z00t&quot;) mit einem neuen, ebenfalls übergebenen Wert (z.B &quot;Z00t2&quot;), ersetzt.</p>
<p>Leider habe ich bisher keinen Ansatz, wie ich beginnen könnte und vor allem, ob es überhaupt sinnvoll ist, das per Klasse zu lösen.<br />
Danke für jedes Feedback</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2052233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052233</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Wed, 20 Apr 2011 20:03:55 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Wed, 20 Apr 2011 20:10:49 GMT]]></title><description><![CDATA[<p>Es gibt bereits Klassen zur Verarbeitung von Dateien - die nennen sich std::ifstream und std::ofstream. Das Einfügen von Text könnte allerdings ein wenig schwieriger werden, weil du den gesamten Inhalt hinter der Einfügestelle zwischenspeichern und um einige Bytes versetzt zurückschreiben mußt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2052235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052235</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 20 Apr 2011 20:10:49 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Wed, 20 Apr 2011 20:46:19 GMT]]></title><description><![CDATA[<p>lies (zum beispiel im konstruktor) deine datei in einen vector ein und wende deine methoden an, die alle diesen vector bearbeiten und am ende i(im destruktor zum beispiel) speicherst du den vector in der datei und übershcreibst sie somit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2052251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052251</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 20 Apr 2011 20:46:19 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Tue, 31 May 2011 15:42:24 GMT]]></title><description><![CDATA[<p>Hab jetzt ein wenig überlegt und hab eine Basis (bisher noch ungetestet, sind nur die nieder geschriebene Idee, sonst vergesse ich die bestimmt wieder, bis ich daheim bin...)</p>
<p>Hier meine Header-Datei zu meiner Klasse:</p>
<pre><code class="language-cpp">#ifndef CTEDIT_H
#define CTEDIT_H

class CTEdit
{
	private:
		ifstream m_DataIn;
		ofstream m_DataOut;
		string m_File;

	public:
		CTEdit( string szFile );
		~CTEdit( void );

		void FindLine( string szLine );
		void ReplaceLine( string szLine, string szNewLine );
}

#endif
</code></pre>
<p>Und hier hier die .cpp-Datei dazu; wie man sieht hänge ich genau an der Stelle, dass ich einen bestimmte Zeile löschen und an dieser Stelle eine neue einfügen muss:</p>
<pre><code class="language-cpp">#include &quot;CTEdit.h&quot;

CTEdit :: CTEdit( string szFile )
{
	m_File = szFile;
}

CTEdit :: ~CTEdit( void )
{

}

void CTEdit :: FindLine( string szLine )
{
	vector&lt;string&gt; results;
	vector&lt;string&gt;::iterator it;
	string szLineFromFile;
	m_DataIn.open( m_File.c_str( ) );

	if( m_DataIn.fail( ) )
	{
		cout &lt;&lt; &quot;[ERROR] Could Not Open File: &quot; &lt;&lt; m_File &lt;&lt; endl;
		return;
	}

	while( !m_DataIn.eof( ) )
	{
		getline( szLineFromFile, m_DataIn );

		if( szLineFromFile[0] == '#' || szLineFromFile.empty( ) )
			continue;

		if( szLineFromFile.find( szLine ) != string :: npos )
		{
			++iResultsCount;
			result.push_back( szLine );
			cout &lt;&lt; &quot;[CTEDIT] &quot; &lt;&lt; (int)results.size( ) &lt;&lt; &quot; Lines match '&quot; &lt;&lt; szLine &lt;&lt; &quot;'&quot; &lt;&lt; endl &lt;&lt; &quot;[CTEDIT] Content:&quot;;
			for( it = results.begin( ); it &lt; results.end( ); ++it )
				cout &lt;&lt; &quot; &quot; &lt;&lt; *it;
			cout &lt;&lt; endl;
		}
	}
}

void CTEdit :: ReplaceLine( string szLine, string szNewLine )
{
	vector&lt;string&gt; results;
	string szLineFromFile;
	m_DataIn.open( m_File.c_str( ) );

	if( m_DataIn.fail( ) )
	{
		cout &lt;&lt; &quot;[ERROR] Could Not Open File: &quot; &lt;&lt; m_File &lt;&lt; endl;
		return;
	}

	while( !m_DataIn.eof( ) )
	{
		getline( szLineFromFile, m_DataIn );

		if( szLineFromFile[0] == '#' || szLineFromFile.empty( ) )
			continue;

		if( szLineFromFile.find( szLine ) != string :: npos )
			result.push_back( szLine );

		if( results.size( ) &gt; 1 )
		{
			cout &lt;&lt; &quot;[ERROR] Too Many Matches Found For '&quot; &lt;&lt; szLine &lt;&lt; &quot;'&quot; &lt;&lt; endl;
			return;
		}

		/*
		szLine in der Datei löschen
		szNewLine an der Position von szLine einfügen
		*/

	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2071540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071540</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Tue, 31 May 2011 15:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Tue, 31 May 2011 16:07:38 GMT]]></title><description><![CDATA[<p>Iiiih. Kommst du aus der Steinzeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071553</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 31 May 2011 16:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Tue, 31 May 2011 16:30:47 GMT]]></title><description><![CDATA[<p>Wieso?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071580</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Tue, 31 May 2011 16:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Wed, 01 Jun 2011 08:00:16 GMT]]></title><description><![CDATA[<p>(Ohne deinen Code gelsesen zu haben) Schau mal hier:<br />
<a href="http://doc.qt.nokia.com/4.7-snapshot/qsettings.html" rel="nofollow">http://doc.qt.nokia.com/4.7-snapshot/qsettings.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071854</guid><dc:creator><![CDATA[waschbaerFurcht]]></dc:creator><pubDate>Wed, 01 Jun 2011 08:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Thu, 02 Jun 2011 22:04:32 GMT]]></title><description><![CDATA[<p>Ich denke ich hab die Antwort jetzt gefunden (tellg() bzw seekg()), allerdings habe ich jetzt ein anderes Problem; mein Programm beendet sich mit einer Warnung &quot;Debug Assertion failed! [...] Expression: String subscript out of range [....]&quot;<br />
Was bedeutet das? O_o Vermutlich ein Fehler mit meinen Strings... allerdings komme ich nicht drauf was genau...</p>
<pre><code class="language-cpp">void CTEdit :: FindLine( string szLine ) 
{ 
    vector&lt;string&gt; results; 
    vector&lt;string&gt;::iterator it; 
    string szLineFromFile; 
    m_DataIn.open( m_File.c_str( ) );

    if( m_DataIn.fail( ) ) 
    { 
        cout &lt;&lt; &quot;2[ERROR] Could Not Open File: &quot; &lt;&lt; m_File &lt;&lt; endl; 
        return; 
    } 

    while( !m_DataIn.eof( ) ) 
    { 
        getline( m_DataIn, szLineFromFile ); 

        if( szLineFromFile[0] == '#' || szLineFromFile.empty( ) )
            continue;

		szLineFromFile.erase( remove( szLineFromFile.begin( ), szLineFromFile.end( ), '\r' ), szLineFromFile.end( ) );
		szLineFromFile.erase( remove( szLineFromFile.begin( ), szLineFromFile.end( ), '\n' ), szLineFromFile.end( ) );

        if( szLineFromFile.find( szLine ) != string :: npos ) 
            results.push_back( szLine );
		else
			continue;
    } 

	cout &lt;&lt; &quot;[CTEDIT] &quot; &lt;&lt; (int)results.size( ) &lt;&lt; &quot; Lines match '&quot; &lt;&lt; szLine &lt;&lt; &quot;'&quot; &lt;&lt; endl &lt;&lt; &quot;[CTEDIT] Content: &quot; &lt;&lt; results.at( 0 );
    for( it = results.begin( ) + 1; it &lt; results.end( ); ++it )
		cout &lt;&lt; &quot;, &quot; &lt;&lt; *it;
    cout &lt;&lt; endl;
	m_DataIn.close( );
}
</code></pre>
<p>Der Fehler tritt nur dann auf, wenn ich in meiner Datei (m_File = &quot;test.txt&quot;) eine leere Zeile (also KEIN Inhalt, nicht mal ein Leerzeichen) eingefügt habe (deshalb</p>
<pre><code class="language-cpp">szLineFromFile.erase( remove( szLineFromFile.begin( ), szLineFromFile.end( ), '\r' ), szLineFromFile.end( ) );
</code></pre>
<p>)<br />
Wenn ich die Warnung ignoriere funktioniert es auch problemlos...<br />
Jemand eine Idee, was das Problem sein könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072570</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Thu, 02 Jun 2011 22:04:32 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Thu, 02 Jun 2011 22:11:42 GMT]]></title><description><![CDATA[<p>Du solltest mal die Bedingungen in Zeile 19 umtauschen - wenn die eingelesene Zeile leer ist, existiert auch kein <code>szLineFromFile[0]</code> .</p>
<p>PS: Die beiden erase()-Aufrufe dürften eigentlich keine Auswirkung haben - da getline() sowieso beim Zeilenende aufhört zu lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072573</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 02 Jun 2011 22:11:42 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 12:33:50 GMT]]></title><description><![CDATA[<p>Danke! Das war der Fehler; dachte bisher, dass das zwei oder mehr Voraussetzungen in einer if-Anweisung gleichberechtigt sind O.o</p>
<p>Wie bereits erwähnt ist die Lösung meines Problems tellg() und seekg() bzw tellp() und seekp().<br />
Hier mal mein Code:</p>
<pre><code class="language-cpp">void CTEdit :: ReplaceLine( string szOldLine, string szNewLine ) 
{ 
    vector&lt;string&gt; results; 
    string szLine;
	long pos;
	m_StreamIn.open( m_File.c_str( ) ); 

    if( m_StreamIn.fail( ) ) 
    { 
        cout &lt;&lt; &quot;[ERROR] Could Not Open File: &quot; &lt;&lt; m_File &lt;&lt; endl; 
        return; 
    } 

    while( !m_StreamIn.eof( ) ) 
    { 
        getline( m_StreamIn, szLine ); 

        if( szLine.empty( ) || szLine[0] == '#' )
            continue;

        if( szLine.find( szOldLine ) != string :: npos )
		{
			pos = m_StreamIn.tellg( );										// *
			results.push_back( szLine ); 
			cout &lt;&lt; &quot;Found: &quot; &lt;&lt; szOldLine &lt;&lt; &quot; at Position &quot; &lt;&lt; pos &lt;&lt; endl;

		}
		else
			continue;
	}

	if( results.size( ) &gt; 1 ) 
    { 
		cout &lt;&lt; &quot;[ERROR] Too Many Matches Found For '&quot; &lt;&lt; szLine &lt;&lt; &quot;'&quot; &lt;&lt; endl; 
        return; 
    }

	if( results.empty( ) )
	{
		cout &lt;&lt; &quot;[ERROR] No Matches Found For '&quot; &lt;&lt; szLine &lt;&lt; &quot;'&quot; &lt;&lt; endl; 
        return; 
	}

	m_StreamIn.close( );

	m_StreamOut.open( m_File.c_str( ), ios :: app );						// Datei für öffnen
	m_StreamOut.seekp( pos - szLine.size( ) );								// pos : Position festgestellt bei *
																			// Länge der Zeile wird abgezogen, um wieder an den anfang der Zeile zu kommen
	m_StreamOut.write( szNewLine.c_str( ), szNewLine.size( ) );				// Schreiben der neuen Zeile
	m_StreamOut.close( );

}
</code></pre>
<p>Leider funktioniert es nicht ganz wie gewünscht, denn anstatt dass eine Zeile ersetzt wird, wird einfach <em>szNewLine</em> am Ende des Inhalts der Datei angehängt... Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072773</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Fri, 03 Jun 2011 12:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 13:22:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vorausgesetzt, dass ich Dich richtig verstehe, dann geht das so nicht.</p>
<p>Du müsstest:<br />
1. Das gewünschte File zB. in einen vector<a href="std::string" rel="nofollow">std::string</a> einlesen.<br />
2. Alle Manipulationen in diesem Vector vornehmen.<br />
3. Den gesamten Vector wieder in das File schreiben.</p>
<p>Ich würde nach dem einlesen das Original File zu *.bak umbenennen.</p>
<p>Herzliche Grüsse<br />
Walter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072797</guid><dc:creator><![CDATA[weicher]]></dc:creator><pubDate>Fri, 03 Jun 2011 13:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 15:37:55 GMT]]></title><description><![CDATA[<p>Hmpf, ich kann fast nicht glauben, dass das nur so möglich ist?! Gibt es wirklich keine Möglichkeit EINE bestimmte(!) Zeile in einer Datei zu löschen und dann an dieser Stelle etwas neues hineinschreiben? Stattdessen kann man nur die KOMPLETTE File neuschreiben?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072875</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Fri, 03 Jun 2011 15:37:55 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 15:39:41 GMT]]></title><description><![CDATA[<p>Das geht nur, wenn der Ersatztext genauso lang ist wie die Zeile, die du rauslöschen willst. (in dem Fall reicht es, die Daten zu überschreiben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072878</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Jun 2011 15:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 16:10:52 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a> und Z00t<br />
ich finde den Begriff &quot;Zeile&quot; im zusammenhang mit einem File problematisch. Damit entsteht in unserer Vorstellung fast automatisch das Bild einer &quot;Seite&quot; mit unterschiedlicher Zeilenlänge und jeder Menge Platz um etwas einzufügen.</p>
<p>@Z00t<br />
In einem File gibt es keine &quot;Zeilen&quot; oder &quot;Seiten&quot; sondern nur Zeichen (Bytes). So wie das Byte mit dem Wert 65 als &quot;A&quot; interpretiert und dargestellt wird, wird die Bytekombination 10 13 (oder nur 10) als Zeilenende und/oder Zeilensprung interpretiert und dargestellt. Lücken um etwas einzufüllen gibt es in einem File nicht, auch 32 ist keine Lücke.</p>
<p>Herzliche Grüsse<br />
Walter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072900</guid><dc:creator><![CDATA[weicher]]></dc:creator><pubDate>Fri, 03 Jun 2011 16:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 18:08:07 GMT]]></title><description><![CDATA[<p>Ja, das ist mir durchaus klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Deswegen, wenn man sich meinen Code betrachtet, &quot;hole&quot; ich mir ja jede Zeile einzeln, bearbeite diese und speicher gleichzeitig die Position des ifstream nach jeder Zeile. Rein von der Logik her sollte es dann doch möglich sein, wenn ich diese Position habe, mit einem ofstream an eben dieser Position &quot;einzusteigen&quot; und dann weitere Operationen durchzuführen..<br />
-&gt; <a href="http://www.cplusplus.com/reference/iostream/istream/tellg/" rel="nofollow">http://www.cplusplus.com/reference/iostream/istream/tellg/</a></p>
<pre><code class="language-cpp">// load a file into memory
#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main () {
  int length;
  char * buffer;

  ifstream is;
  is.open (&quot;test.txt&quot;, ios::binary );

  // get length of file:
  is.seekg (0, ios::end);   // get pointer wird ans Ende der File gesetzt
  length = is.tellg();      // tellg() ermittelt die Anzahl der Zeichen von Anfang bis Ende
  is.seekg (0, ios::beg);   // get pointer wird wieder an den Anfang gesetzt

  // allocate memory:
  buffer = new char [length];

  // read data as a block:
  is.read (buffer,length);

  is.close();

  cout.write (buffer,length);

  delete[] buffer;
  return 0;
}
</code></pre>
<p>Ich mache im Prinzip ja das Gleiche; ich hole mir allerdings nur die Position nach Abschluss einer bestimmten Zeile (ich denke man kann durchaus von &quot;Zeile&quot; besprechen, da ich ja mit getline() arbeite, das ja durchaus eine Zeile &quot;holt&quot;) und speicher diese.</p>
<p>-&gt; <a href="http://www.cplusplus.com/reference/iostream/ostream/seekp/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ostream/seekp/</a></p>
<pre><code class="language-cpp">// position of put pointer
#include &lt;fstream&gt;
using namespace std;

int main () {
  long pos;

  ofstream outfile;
  outfile.open (&quot;test.txt&quot;);

  outfile.write (&quot;This is an apple&quot;,16); // etwas wird in die datei geschrieben, tellg() ist an der Stelle 16 im ofstream
  pos=outfile.tellp();     // pos wird mit diesem wert versehen
  outfile.seekp (pos-7);   // put pointer wird um 7 Stellen zurückversetzt
  outfile.write (&quot; sam&quot;,4); // &quot;n ap&quot; wird überschrieben!

  outfile.close();

  return 0;
}
</code></pre>
<p>Es ist also durchaus möglich! Allerdings verstehe ich nicht, was ich falsch mache bzw. wieso bei mir nichts überschrieben wird, sondern lediglich am Ende der Datei etwas angehängt wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072952</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Fri, 03 Jun 2011 18:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 18:24:27 GMT]]></title><description><![CDATA[<p>Ja, du kannst irgendwo in die Datei reinspringen und dort anfangen zu schreiben. Aber damit kannst du nur die vorhandenen Zeichen überschreiben - du kannst weder zusätzliche Zeichen dazwischenquetschen noch Inhalte löschen.<br />
Deshalb ist auch der übliche Ansatz, die komplette Datei einzulesen, im Speicher zu modifizieren (im RAM Daten rumzuschieben geht wesentlich leichter) und am Ende wieder zurückzuschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072963</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Jun 2011 18:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 18:44:13 GMT]]></title><description><![CDATA[<p>Geht das nicht?</p>
<pre><code class="language-cpp">// neue zeile

ofstream out;
// an einer bestimmten stelle einspringen und schreiben
out &lt;&lt; endl;
// seekg() um ein zeichen zurück
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2072976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072976</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Fri, 03 Jun 2011 18:44:13 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 18:50:39 GMT]]></title><description><![CDATA[<p>Klar geht das - macht nur nicht das, was du vermutlich vorhast. Mit der Anweisung <strong>überschreibst</strong> du das Zeichen an der Zielposition mit einem Newline.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072980</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Jun 2011 18:50:39 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 22:04:00 GMT]]></title><description><![CDATA[<p>kann man nicht EIN &quot;\n&quot; mit ZWEI &quot;\n\n&quot; ersetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073056</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Fri, 03 Jun 2011 22:04:00 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 22:15:18 GMT]]></title><description><![CDATA[<p>Nein, kannst du nicht. Du kannst EIN Zeichen gegen EIN anderes Zeichen ersetzen.</p>
<p>(bei normalen Speicher-Operationen kannst du auch nur die Werte überschreiben - Einfügen und Löschen funktioniert, indem alle Zeichen hinter der Zielposition verschoben werden, um Platz zu schaffen bzw. die Lücke zu schließen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073060</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Jun 2011 22:15:18 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Fri, 03 Jun 2011 22:21:57 GMT]]></title><description><![CDATA[<blockquote>
<p>Ja, das ist mir durchaus klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Scheinbar nicht!</p>
<p>Herzliche Grüsse<br />
Walter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073061</guid><dc:creator><![CDATA[weicher]]></dc:creator><pubDate>Fri, 03 Jun 2011 22:21:57 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile Editieren on Sat, 04 Jun 2011 10:14:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a><br />
Alles klar, danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24694">@weicher</a><br />
Doch! Durchaus, allerdings war mir nicht klar, was CStoll soeben geschrieben hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073168</guid><dc:creator><![CDATA[Z00t]]></dc:creator><pubDate>Sat, 04 Jun 2011 10:14:19 GMT</pubDate></item></channel></rss>