<?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[In Datei löschen?]]></title><description><![CDATA[<p>Hey EveryOne</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">// Versuche, Datei zu öffnen
for(int i = 0; i &lt; 3 &amp;&amp; (fpMain = fopen((*this).get_strFileName(1), &quot;a+&quot;)) == NULL; i++) {
   sleep(5);
}

// Zähle die Zeilen der Datei
strcpy(strFileBuf, &quot;&quot;);
while(fpMain != NULL &amp;&amp; fgets(strFileBuf, sizeof(strFileBuf) / sizeof(char), fpMain) != NULL) {
   iLineCount++;
}

// Wenn zu viele Zeilen (z.B. maximal 96), lösche die ersten paar
for(int i = 0; i &lt;= m_iLineLimit - iLineCount; i++) {
   // Lösche so viele Zeilen am Dateianfang wie nötig
}
</code></pre>
<p>Die Idee wäre jetzt nun, falls sich in der Textdatei bereits zu viele Zeilen befinden, diese zu löschen. Nun, wie mache ich das am Besten? Muss ich dazu die Datei erst in einen String einlesen, diesen von Hand editieren und dann wieder ausgeben oder geht das auch ein wenig eleganter <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>Danke für jede Antwort und Gruss<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174478/in-datei-löschen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 20:13:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174478.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Feb 2007 18:20:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to In Datei löschen? on Tue, 27 Feb 2007 18:20:34 GMT]]></title><description><![CDATA[<p>Hey EveryOne</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">// Versuche, Datei zu öffnen
for(int i = 0; i &lt; 3 &amp;&amp; (fpMain = fopen((*this).get_strFileName(1), &quot;a+&quot;)) == NULL; i++) {
   sleep(5);
}

// Zähle die Zeilen der Datei
strcpy(strFileBuf, &quot;&quot;);
while(fpMain != NULL &amp;&amp; fgets(strFileBuf, sizeof(strFileBuf) / sizeof(char), fpMain) != NULL) {
   iLineCount++;
}

// Wenn zu viele Zeilen (z.B. maximal 96), lösche die ersten paar
for(int i = 0; i &lt;= m_iLineLimit - iLineCount; i++) {
   // Lösche so viele Zeilen am Dateianfang wie nötig
}
</code></pre>
<p>Die Idee wäre jetzt nun, falls sich in der Textdatei bereits zu viele Zeilen befinden, diese zu löschen. Nun, wie mache ich das am Besten? Muss ich dazu die Datei erst in einen String einlesen, diesen von Hand editieren und dann wieder ausgeben oder geht das auch ein wenig eleganter <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>Danke für jede Antwort und Gruss<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236354</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Tue, 27 Feb 2007 18:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Tue, 27 Feb 2007 18:22:35 GMT]]></title><description><![CDATA[<p>Das ist nicht C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236356</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Tue, 27 Feb 2007 18:22:35 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Wed, 28 Feb 2007 12:27:27 GMT]]></title><description><![CDATA[<p>... schrieb:</p>
<blockquote>
<p>Das ist nicht C++.</p>
</blockquote>
<p>Huh? Uhm, naja, es ist zumindest der Code, den ich in einer Funktion meiner C++ Klasse verwende. Bei allem Weiteren bin ich nicht so zimperlich <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>
<p>In jedem Fall thx 4 the Info, allerdings trägt selbige nur sehr wenig zur Lösung meines ursprünglichen Problems bei: dem Löschen von Text bzw. ganzen Zeilen in einer Datei...</p>
<p>greeetz<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236751</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Wed, 28 Feb 2007 12:27:27 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Wed, 28 Feb 2007 12:41:19 GMT]]></title><description><![CDATA[<p>Physisch kannst du deine Dateien (oder Teile davon) nur löschen, indem du sie mit neuem Inhalt überschreibst. Ich weiß nicht, ob es in der WinAPI oder im Linux-System Funktionen gibt, um eine Datei zu kürzen, aber auf C++ Ebene bleibt dir nur die Möglichkeit:</p>
<ol>
<li>gesamte Datei einlesen</li>
<li>Dateiinhalt im RAM verarbeiten</li>
<li>Datei im Modus <code>ios::out</code> bzw. &quot;w&quot; öffnen und neuen Inhalt zurückschreiben</li>
</ol>
<p>(die Datei-Operationen würde ich sowieso auf ein Minimum beschränken - bei Programmanfang den kompletten Dateiinhalt einlesen (wenn nötig) und am Ende alles wieder zurückschreiben)</p>
<p>PS: In einer C++ Umgebung solltest du lieber IO-Streams verwenden anstelle der FILE*-Funktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236766</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Feb 2007 12:41:19 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Wed, 28 Feb 2007 12:53:36 GMT]]></title><description><![CDATA[<p>ich geh das ganze mal rein theoretisch an und benutz dabei mal streams (zeilenerkennung kannst da sicher selber noch einbaun)</p>
<p>man hole sich einen filestream, merke sich die schreibposition = 0, seeke 20% nach vorn vom anfang, merke sich die seekposition, kopiere sich von seek an einen block kleiner als differenz von schreib und seek position, schreibe ihn an die schreibposition, rücke seek um die geschriebenen byte nach vorn und wiederhole das bis seek das ende erreicht, anschliessend setEOF() an die finale schreibposition um die datei abzuschneiden, fertig</p>
<p>das schreiben überlass ich dir</p>
<p>mfg</p>
<p>EDIT: stoll war schneller, wenn die datei nicht zu groß ist gehts auch so :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236776</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Wed, 28 Feb 2007 12:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Wed, 28 Feb 2007 15:38:32 GMT]]></title><description><![CDATA[<p>Hmm... Ok, also doch von Hand. Da die Funktion dazu da ist, die Datei nicht zu gross werden zu lassen, werde ich mich vermutlich für die alles einlesen / editieren / alles ausgeben - Variante entscheiden.</p>
<p>Danke also erst mal und bis nächstens <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>
<p>Greeetz Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236869</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Wed, 28 Feb 2007 15:38:32 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Wed, 28 Feb 2007 19:51:24 GMT]]></title><description><![CDATA[<p>DAS IST KEIN c++</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> :p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237045</guid><dc:creator><![CDATA[Stelfer]]></dc:creator><pubDate>Wed, 28 Feb 2007 19:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Thu, 01 Mar 2007 12:28:37 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>PS: In einer C++ Umgebung solltest du lieber IO-Streams verwenden anstelle der FILE*-Funktionen.</p>
</blockquote>
<p>Einspruch. Die C-Funktionen sind bei allen gängigen Compilern wesentlich performanter; wenn das eine Rolle spielt, sind sie (evtl. auch die OS-eigenen APIs) fstreams vorzuziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237387</guid><dc:creator><![CDATA[audacia|off]]></dc:creator><pubDate>Thu, 01 Mar 2007 12:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to In Datei löschen? on Thu, 01 Mar 2007 12:50:51 GMT]]></title><description><![CDATA[<p>Performanter vielleicht (wobei das idR auch kein Grund für oder gegen eine Variante ist - und in zeitkritischen Programmabschnitten solltest du <strong>überhaupt keine</strong> Dateiverwaltung dazwischenklemmen), aber bestimmt nicht sicherer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237414</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Mar 2007 12:50:51 GMT</pubDate></item></channel></rss>