<?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[Größe einer mit ofstream bearbeiteten Datei]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich möchte die Größe einer Datei (txt) bestimmen. Dafür habe ich eine Funktion, funzt auch gut.</p>
<pre><code class="language-cpp">float FileSize(AnsiString astrFileNameForFileSize)
{
  HANDLE hFile = CreateFile(astrFileNameForFileSize.c_str(),  // file to open
                       GENERIC_READ,          // open for reading
                       FILE_SHARE_READ,       // share for reading
                       NULL,                  // default security
                       OPEN_EXISTING,         // existing file only
                       FILE_ATTRIBUTE_NORMAL, // normal file
                       NULL);                 // no attr. template

    if (hFile == INVALID_HANDLE_VALUE)
    {
        ShowMessage(&quot;Error: Could not open file&quot;);
    }
    flSize = GetFileSize(hFile, NULL);

  return flSize;
}
</code></pre>
<p>Jetzt habe ich eine Textdatei in einem ofstream die in einer while-Schleife stetig um Werte erweitert wird. Jedoch möchte ich die Größenzunahme der Datei &quot;überwachen&quot; d.h. ausgeben.</p>
<p>Quelltext:</p>
<pre><code class="language-cpp">ifstream iStream(dateiName);                    // Datei öffnen
  ofstream tempStream(&quot;CharReplace_temp.txt&quot;);    // tempomäre Datei erstellen und öffnen

  while( getline(iStream, aktuelleZeile) )        // string aktuelleZeile
  {
    // macht hier ein paar lustige sachen 
    // und noch viel mehr ^^

    tempStream &lt;&lt; aktuelleZeile &lt;&lt; endl;        // in tempomäre Datei schreiben

    // hier möchte ich gerne die Größe der Datei &quot;CharReplace_temp.txt&quot; 
    // ausgeben lassen, sagen wir in eine Variable float flFileSize
    // jedoch geht flFileSize = FileSize(&quot;CharReplace_temp.txt&quot;); nicht
    // sicher wegen hFile == INVALID_HANDLE_VALUE, denn der Stream ist ja noch  
    // an der Datei aktiv  
  }

  iStream.close();
  tempStream.close();

  // jetzt kann ich die Dateigröße wieder bestimmen, was nichts bringt, 
  // da alle Aktionen durchgeführt wurden, und die FileSize nun statisch ist
</code></pre>
<p>Ihr kennt jetzt mein Konstrukt, meine Frage ist nun:<br />
Wie bekomme ich die Filesize bei jedem Druchlauf der while-Schleife?</p>
<p>a) Ist es evlt möglich das Handle der Datei zu manipulieren ohne deren Inhalt zu zerstören, weil sie ja aktiv ist...<br />
b) kann man evtl ermiteln wie groß der Inhalt des Stream ist, und diesen dann stetig addieren?</p>
<p>Ich danke für jede Idee,<br />
MfG<br />
Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204642/größe-einer-mit-ofstream-bearbeiteten-datei</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 17:16:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204642.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Feb 2008 16:41:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Tue, 05 Feb 2008 16:41:15 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich möchte die Größe einer Datei (txt) bestimmen. Dafür habe ich eine Funktion, funzt auch gut.</p>
<pre><code class="language-cpp">float FileSize(AnsiString astrFileNameForFileSize)
{
  HANDLE hFile = CreateFile(astrFileNameForFileSize.c_str(),  // file to open
                       GENERIC_READ,          // open for reading
                       FILE_SHARE_READ,       // share for reading
                       NULL,                  // default security
                       OPEN_EXISTING,         // existing file only
                       FILE_ATTRIBUTE_NORMAL, // normal file
                       NULL);                 // no attr. template

    if (hFile == INVALID_HANDLE_VALUE)
    {
        ShowMessage(&quot;Error: Could not open file&quot;);
    }
    flSize = GetFileSize(hFile, NULL);

  return flSize;
}
</code></pre>
<p>Jetzt habe ich eine Textdatei in einem ofstream die in einer while-Schleife stetig um Werte erweitert wird. Jedoch möchte ich die Größenzunahme der Datei &quot;überwachen&quot; d.h. ausgeben.</p>
<p>Quelltext:</p>
<pre><code class="language-cpp">ifstream iStream(dateiName);                    // Datei öffnen
  ofstream tempStream(&quot;CharReplace_temp.txt&quot;);    // tempomäre Datei erstellen und öffnen

  while( getline(iStream, aktuelleZeile) )        // string aktuelleZeile
  {
    // macht hier ein paar lustige sachen 
    // und noch viel mehr ^^

    tempStream &lt;&lt; aktuelleZeile &lt;&lt; endl;        // in tempomäre Datei schreiben

    // hier möchte ich gerne die Größe der Datei &quot;CharReplace_temp.txt&quot; 
    // ausgeben lassen, sagen wir in eine Variable float flFileSize
    // jedoch geht flFileSize = FileSize(&quot;CharReplace_temp.txt&quot;); nicht
    // sicher wegen hFile == INVALID_HANDLE_VALUE, denn der Stream ist ja noch  
    // an der Datei aktiv  
  }

  iStream.close();
  tempStream.close();

  // jetzt kann ich die Dateigröße wieder bestimmen, was nichts bringt, 
  // da alle Aktionen durchgeführt wurden, und die FileSize nun statisch ist
</code></pre>
<p>Ihr kennt jetzt mein Konstrukt, meine Frage ist nun:<br />
Wie bekomme ich die Filesize bei jedem Druchlauf der while-Schleife?</p>
<p>a) Ist es evlt möglich das Handle der Datei zu manipulieren ohne deren Inhalt zu zerstören, weil sie ja aktiv ist...<br />
b) kann man evtl ermiteln wie groß der Inhalt des Stream ist, und diesen dann stetig addieren?</p>
<p>Ich danke für jede Idee,<br />
MfG<br />
Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1449944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1449944</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Tue, 05 Feb 2008 16:41:15 GMT</pubDate></item><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Tue, 05 Feb 2008 19:31:26 GMT]]></title><description><![CDATA[<p><a href="http://www2.informatik.uni-halle.de/lehre/c/c_fopen.html" rel="nofollow">http://www2.informatik.uni-halle.de/lehre/c/c_fopen.html</a><br />
siehe fseek + ftell</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450028</guid><dc:creator><![CDATA[autohr]]></dc:creator><pubDate>Tue, 05 Feb 2008 19:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Tue, 05 Feb 2008 21:36:24 GMT]]></title><description><![CDATA[<p>tausend dank!</p>
<p>der Link ist gold wert!</p>
<p>MfG<br />
Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450108</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Tue, 05 Feb 2008 21:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Tue, 05 Feb 2008 22:35:56 GMT]]></title><description><![CDATA[<p>Wieso C? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>fstream hat auch eine Methode um die Position des Lese/Shcreibzeigers anzugeben.</p>
<p>An deinem Beispiel:</p>
<pre><code class="language-cpp">std::cout &lt;&lt; tempStream.tellp() &lt;&lt; std::endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1450145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450145</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Tue, 05 Feb 2008 22:35:56 GMT</pubDate></item><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Wed, 06 Feb 2008 08:30:55 GMT]]></title><description><![CDATA[<p>ERstmal musst du in deiner filesize-funktion noch CloseHAndle aufrufen, sonst hast du irgendwann tausend offene handles auf deine Datei, das is nich gut.</p>
<p>Weiterhin ist ofstsream gepuffert, also es werden nciht alle daten gleich in die datei geschrieben. Weiterhin weiß ich auch nich, ob man die größe messen kann, wenn ein anderer da grad reinschreibt.</p>
<p>Eine Möglichkeit wäre, manuell mitzuzählen: Merk dir die größe am anfang, und zähl dann immer die länge der zeile zur größe hinzu und noch zwei byte für den zeilenumbruch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450261</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 06 Feb 2008 08:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Wed, 06 Feb 2008 12:21:44 GMT]]></title><description><![CDATA[<p>The-Kenny schrieb:</p>
<blockquote>
<p>Wieso C? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>fstream hat auch eine Methode um die Position des Lese/Shcreibzeigers anzugeben.</p>
<p>An deinem Beispiel:</p>
<pre><code class="language-cpp">std::cout &lt;&lt; tempStream.tellp() &lt;&lt; std::endl;
</code></pre>
</blockquote>
<p>Das ist natürlich gut, dann muss ich nicht zurück zu C; so verwende ich es jetzt und es funtz gut --&gt; besten Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<pre><code class="language-cpp">CloseHandle(hFile);
</code></pre>
<p>Danke für den Tip, das hätte ich natürlich vergessen...</p>
<p>MfG<br />
Tippo</p>
<p><strong>Edit:</strong> Sry, ich bau wieder nur Mist, natürlich CloseHandle, ich sollte echt besser aus dem Quelltext Kopieren, da passiert sowas nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450473</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Wed, 06 Feb 2008 12:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to Größe einer mit ofstream bearbeiteten Datei on Wed, 06 Feb 2008 12:18:48 GMT]]></title><description><![CDATA[<p>nicht Findclose... CloseHandle! steht ber auch in der msdn drin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450478</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 06 Feb 2008 12:18:48 GMT</pubDate></item></channel></rss>