<?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[Problem mit tellg()]]></title><description><![CDATA[<p>Hi</p>
<p>ich lese eine datei über einen fstream ein und möchte das einlesen gerne zu einem späteren zeitpunkt fortsetzen.<br />
Dafür will ich mit</p>
<pre><code class="language-cpp">dateiPos = datei.tellg();
</code></pre>
<p>die Position in der Datei abspeichern.<br />
Der Wert wird aber immer auf 0 gesetzt, auch wenn ich schon über 5000Byte eingelesen habe. Was mache ich den da falsch.</p>
<p>dateipos ist vom typ long.</p>
<pre><code class="language-cpp">fstream datei;
    int anzByte = 0;
    char Buffer[1024];
    int pC = 0;
    datei.clear();
    datei.open(Datei.c_str(), ios::in);
    datei.seekp( dateiPos, ios_base::beg);
    if(datei.good() &amp;&amp; datei.is_open())
    {
      while(!datei.eof() &amp;&amp; pC &lt; 4)
      {
        for(int i = 0; i &lt; 1024 &amp;&amp; !datei.eof();i++)
        {
          Buffer[i] = datei.get();
          anzByte = i;
        }
        //Daten verarbeiten
        pC++;
        //ClientSocket1-&gt;Socket-&gt;SendBuf(Buffer,999);
      }
      if(datei.eof())
      {
        //Ok Datei zuende.
        Datei = &quot;&quot;;
      }
      else
      {
        Datei = &quot;c:\\pagefile001.bmp&quot;;
        //Position abspeichern.
        dateiPos = datei.tellg();

      }
      datei.close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/167838/problem-mit-tellg</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 07:53:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167838.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Dec 2006 14:05:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit tellg() on Fri, 15 Dec 2006 14:05:39 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>ich lese eine datei über einen fstream ein und möchte das einlesen gerne zu einem späteren zeitpunkt fortsetzen.<br />
Dafür will ich mit</p>
<pre><code class="language-cpp">dateiPos = datei.tellg();
</code></pre>
<p>die Position in der Datei abspeichern.<br />
Der Wert wird aber immer auf 0 gesetzt, auch wenn ich schon über 5000Byte eingelesen habe. Was mache ich den da falsch.</p>
<p>dateipos ist vom typ long.</p>
<pre><code class="language-cpp">fstream datei;
    int anzByte = 0;
    char Buffer[1024];
    int pC = 0;
    datei.clear();
    datei.open(Datei.c_str(), ios::in);
    datei.seekp( dateiPos, ios_base::beg);
    if(datei.good() &amp;&amp; datei.is_open())
    {
      while(!datei.eof() &amp;&amp; pC &lt; 4)
      {
        for(int i = 0; i &lt; 1024 &amp;&amp; !datei.eof();i++)
        {
          Buffer[i] = datei.get();
          anzByte = i;
        }
        //Daten verarbeiten
        pC++;
        //ClientSocket1-&gt;Socket-&gt;SendBuf(Buffer,999);
      }
      if(datei.eof())
      {
        //Ok Datei zuende.
        Datei = &quot;&quot;;
      }
      else
      {
        Datei = &quot;c:\\pagefile001.bmp&quot;;
        //Position abspeichern.
        dateiPos = datei.tellg();

      }
      datei.close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192487</guid><dc:creator><![CDATA[dagsta]]></dc:creator><pubDate>Fri, 15 Dec 2006 14:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit tellg() on Sat, 16 Dec 2006 12:11:39 GMT]]></title><description><![CDATA[<p>Erstens: Wo hast du denn Datei und dateiPos definiert? Womöglich sind sie ja zwischenzeitlich aus dem Scope gefallen.</p>
<p>Zweitens: Du solltest mal im Debugger verfolgen, wo genau sich der Wert zurücksetzt. Und eventuell solltest du auch die übrigen Fehlerbits des Streams abfragen (vor allem fail()) und noptfalls zurücksetzen (clear()).</p>
<p>Drittens: Um die Leseposition des Streams festzulegen, verwendet mann seekg() und nicht seekp() (letzteres setzt die Schreibposition).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192917</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Dec 2006 12:11:39 GMT</pubDate></item></channel></rss>