<?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[Frage zur Arbeit mit Streams.]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab ein kleines script gecodet das wie folgt aussieht:</p>
<pre><code class="language-cpp">int i;

  ifstream file(&quot;test3.txt&quot;, ios::binary);
  if(!file)
  {
    ShowMessage(&quot;Fehler bei open&quot;);
  }
  else
  {
   Memo1-&gt;Lines-&gt;Add(&quot;Datei wird geöffnet ...&quot;);
  }

  /*
    Stream Beispiel:
    ----------------

     |0|1|2|3|4|5|....

     Beim öffnen eines Streams befindet sich der Zähler am Anfang der Datei  (in dem Fall Stream 0).
     Nach jedem Lesevorgang wird er um eine Position verschoben (Stream ++).

     Der Befehl,
       file.read(Buffer, Size);
       file.read(char*)&amp;i,sizeof(i));
     bedeutet soviel wie lese denn aktuellen Stream mit der Größe von sizeof(int) [4 Byte]
     und wandle denn Inhalt (&amp;i) in einen Chartyp (char*) um.

i hat nun denn Inhalt des aktuellen Streamzeichens.

  */

  file.read((char*)&amp;i,sizeof(i));

  while(file)   // solange kein Fehler (im Falle EOFn ist file == false)
  {
   Memo1-&gt;Lines-&gt;Add(i);
   file.read((char*)&amp;i,sizeof(i));
  }

  if(!file.eof())
  {
    ShowMessage(&quot;Fehler beim lesen des Streams&quot;);
  }
  else
  {
    Memo1-&gt;Lines-&gt;Add(&quot;EOF erreicht. Datei wird geschlossen ...&quot;);
    file.close();
  }
</code></pre>
<p>Inhalt &quot;test3.txt&quot;</p>
<pre><code class="language-cpp">1234567890
</code></pre>
<p>Ausgabe Memo1:</p>
<pre><code class="language-cpp">Datei wird geöffnet ...
875770417
943142453
EOF erreicht. Datei wird geschlossen ...
</code></pre>
<p>Fragen:</p>
<p>1.) Kann mir nun mal jemand sagen was das für Zahlen sind und wie die zusammenkommen ?</p>
<p>2.) Kann mir jemand</p>
<pre><code class="language-cpp">(char*)&amp;i
</code></pre>
<p>erklären ?</p>
<p>Danke</p>
<p>Gruß<br />
Binary</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/60865/frage-zur-arbeit-mit-streams</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 04:39:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/60865.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Jan 2004 14:49:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 14:49:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab ein kleines script gecodet das wie folgt aussieht:</p>
<pre><code class="language-cpp">int i;

  ifstream file(&quot;test3.txt&quot;, ios::binary);
  if(!file)
  {
    ShowMessage(&quot;Fehler bei open&quot;);
  }
  else
  {
   Memo1-&gt;Lines-&gt;Add(&quot;Datei wird geöffnet ...&quot;);
  }

  /*
    Stream Beispiel:
    ----------------

     |0|1|2|3|4|5|....

     Beim öffnen eines Streams befindet sich der Zähler am Anfang der Datei  (in dem Fall Stream 0).
     Nach jedem Lesevorgang wird er um eine Position verschoben (Stream ++).

     Der Befehl,
       file.read(Buffer, Size);
       file.read(char*)&amp;i,sizeof(i));
     bedeutet soviel wie lese denn aktuellen Stream mit der Größe von sizeof(int) [4 Byte]
     und wandle denn Inhalt (&amp;i) in einen Chartyp (char*) um.

i hat nun denn Inhalt des aktuellen Streamzeichens.

  */

  file.read((char*)&amp;i,sizeof(i));

  while(file)   // solange kein Fehler (im Falle EOFn ist file == false)
  {
   Memo1-&gt;Lines-&gt;Add(i);
   file.read((char*)&amp;i,sizeof(i));
  }

  if(!file.eof())
  {
    ShowMessage(&quot;Fehler beim lesen des Streams&quot;);
  }
  else
  {
    Memo1-&gt;Lines-&gt;Add(&quot;EOF erreicht. Datei wird geschlossen ...&quot;);
    file.close();
  }
</code></pre>
<p>Inhalt &quot;test3.txt&quot;</p>
<pre><code class="language-cpp">1234567890
</code></pre>
<p>Ausgabe Memo1:</p>
<pre><code class="language-cpp">Datei wird geöffnet ...
875770417
943142453
EOF erreicht. Datei wird geschlossen ...
</code></pre>
<p>Fragen:</p>
<p>1.) Kann mir nun mal jemand sagen was das für Zahlen sind und wie die zusammenkommen ?</p>
<p>2.) Kann mir jemand</p>
<pre><code class="language-cpp">(char*)&amp;i
</code></pre>
<p>erklären ?</p>
<p>Danke</p>
<p>Gruß<br />
Binary</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432470</guid><dc:creator><![CDATA[binary___trust]]></dc:creator><pubDate>Fri, 09 Jan 2004 14:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 14:56:01 GMT]]></title><description><![CDATA[<p>Schau mal hier:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39469" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=39469</a></p>
<p>(char*)&amp;i</p>
<p>bedeutet: Die Adresse von i (hart) gecastet auf einen Zeiger vom Typ char</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432478</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Fri, 09 Jan 2004 14:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 14:58:23 GMT]]></title><description><![CDATA[<p>ok, ich les mir denn artikel mal durch.<br />
kannst du mir auch sagen was der inhalt von i der oben ausgegeben wird zu bedeuten hat ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432482</guid><dc:creator><![CDATA[binary___trust]]></dc:creator><pubDate>Fri, 09 Jan 2004 14:58:23 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 15:03:02 GMT]]></title><description><![CDATA[<p>Da ich nicht weiß was Memo1 ist und was Add() erwartet kann ich Dir da keine Antwort geben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432486</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Fri, 09 Jan 2004 15:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 15:18:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">file.read((char*)&amp;i,sizeof(i)); 

  while(file)   // solange kein Fehler (im Falle EOFn ist file == false) 
  { 
   Memo1-&gt;Lines-&gt;Add(i); 
   file.read((char*)&amp;i,sizeof(i)); 
  }
</code></pre>
<p>inhalt der datei ist &quot;1234567890&quot; ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432512</guid><dc:creator><![CDATA[binary___trust]]></dc:creator><pubDate>Fri, 09 Jan 2004 15:18:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 16:34:35 GMT]]></title><description><![CDATA[<p>Wenn du, 123456789 in der Datei stehen hast, und dann<br />
dies Binär einliest, dann liest du in ein int(4Byte)<br />
jeweils 4 zeichen, d.h. du liest beim ersten mal<br />
nicht 1 sondern 1234 aus, welches dann binär in das int<br />
gehauen wird. Beim zweitenmal liest du wieder 4 Byte usw.<br />
Wenn du die Zahlen 1 -9 haben willst, solltest du gleich mit<br />
einem char auslesen, und das dann nach int casten.</p>
<p>Devil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432568</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Fri, 09 Jan 2004 16:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Arbeit mit Streams. on Fri, 09 Jan 2004 17:10:14 GMT]]></title><description><![CDATA[<p>Frage schrieb:</p>
<blockquote>
<p>Da ich nicht weiß was Memo1 ist und was Add() erwartet kann ich Dir da keine Antwort geben</p>
</blockquote>
<p>Antwort schrieb:</p>
<blockquote>
<pre><code class="language-cpp">file.read((char*)&amp;i,sizeof(i)); 
 
  while(file)   // solange kein Fehler (im Falle EOFn ist file == false) 
  { 
   Memo1-&gt;Lines-&gt;Add(i); 
   file.read((char*)&amp;i,sizeof(i)); 
  }
</code></pre>
<p>inhalt der datei ist &quot;1234567890&quot; ...</p>
</blockquote>
<p>:???:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/432573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/432573</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Fri, 09 Jan 2004 17:10:14 GMT</pubDate></item></channel></rss>