<?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[Binär-Datei einlesen mit C&#x2F;C++]]></title><description><![CDATA[<p>Ich habe folgendes Problem beim einlesen einer Binärdatei:<br />
Wenn ich meine Routine mit einer Testdatei mit einfachem Text als Inhalt teste, funktioniert alles prima und er liest die Datei bis zum Ende fehlerfrei ein.<br />
Wenn ich nun die &quot;richtige&quot; Binärdatei einlesen will, so stoppt er mit dem einlesen schon nach ein paar Byte, da dort die ASCII-Zeichen 0x17 (=ETB, End of Transmission Block) und 0x1A (= SUB, Dateiendezeichen (EOF, End of File) für Textdateien) stehen. Die Binärdatei ist aber hier noch lange nicht zu Ende, sondern es stehen halt einfach diese HEX-Werte an dieser Stelle in der Datei. Ich habe es schon mit untenstehenden Standard-C-Funktionen zum Datei-einlesen probiert, aber er bricht immer ab.<br />
__________________<br />
ifstream in(dateiname);<br />
in&gt;&gt;filein[index];<br />
__________________<br />
fgets();<br />
fgetc();<br />
__________________</p>
<p>Gibt es eine Möglichkeit damit die komplette Datei eingelesen wird. Die Größe der Datei habe ich ja. Ich brauch was in der Richtung:</p>
<p>char String[]=&quot;&quot;;<br />
Pointer = OpenFile(dateiname);<br />
for(i=1;i&lt;=DATEIGRÖSSE_IN_BYTE;i++)<br />
String[i] = Lese(Pointer, byteweise);</p>
<p>Für Vorschläge und Lösung(-sansätze) wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175595/binär-datei-einlesen-mit-c-c</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 04:05:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175595.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Mar 2007 12:38:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Binär-Datei einlesen mit C&#x2F;C++ on Mon, 12 Mar 2007 12:38:19 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Problem beim einlesen einer Binärdatei:<br />
Wenn ich meine Routine mit einer Testdatei mit einfachem Text als Inhalt teste, funktioniert alles prima und er liest die Datei bis zum Ende fehlerfrei ein.<br />
Wenn ich nun die &quot;richtige&quot; Binärdatei einlesen will, so stoppt er mit dem einlesen schon nach ein paar Byte, da dort die ASCII-Zeichen 0x17 (=ETB, End of Transmission Block) und 0x1A (= SUB, Dateiendezeichen (EOF, End of File) für Textdateien) stehen. Die Binärdatei ist aber hier noch lange nicht zu Ende, sondern es stehen halt einfach diese HEX-Werte an dieser Stelle in der Datei. Ich habe es schon mit untenstehenden Standard-C-Funktionen zum Datei-einlesen probiert, aber er bricht immer ab.<br />
__________________<br />
ifstream in(dateiname);<br />
in&gt;&gt;filein[index];<br />
__________________<br />
fgets();<br />
fgetc();<br />
__________________</p>
<p>Gibt es eine Möglichkeit damit die komplette Datei eingelesen wird. Die Größe der Datei habe ich ja. Ich brauch was in der Richtung:</p>
<p>char String[]=&quot;&quot;;<br />
Pointer = OpenFile(dateiname);<br />
for(i=1;i&lt;=DATEIGRÖSSE_IN_BYTE;i++)<br />
String[i] = Lese(Pointer, byteweise);</p>
<p>Für Vorschläge und Lösung(-sansätze) wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243937</guid><dc:creator><![CDATA[Gast123456789]]></dc:creator><pubDate>Mon, 12 Mar 2007 12:38:19 GMT</pubDate></item><item><title><![CDATA[Reply to Binär-Datei einlesen mit C&#x2F;C++ on Mon, 12 Mar 2007 12:44:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Schau doch mal in die FAQ<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html" rel="nofollow">Dateien und Ströme in C++</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243943</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 12 Mar 2007 12:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Binär-Datei einlesen mit C&#x2F;C++ on Mon, 12 Mar 2007 12:45:45 GMT]]></title><description><![CDATA[<p>Binäre Daten einlesen kannst du mit read() (und das sogar in größeren Blöcken):</p>
<pre><code class="language-cpp">ifstream file(dateiname,ios:in|ios::binary);
char * data = new char[DATEIGROESSE];
file.read(data,DATEIGROESSE);
...
delete[]data;
</code></pre>
<p>PS: dein <code>char String[]=&quot;&quot;;</code> ist ziemlich sicher zu klein für den Inhalt einer kompletten Datei. Und in C++ beginnt der Array-Index mit 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243945</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 12 Mar 2007 12:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to Binär-Datei einlesen mit C&#x2F;C++ on Mon, 12 Mar 2007 12:49:23 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

bool output_file_content(const std::string&amp; filename)
{
    std::ifstream file_stream(&quot;test.bin&quot;, std::ios::in | std::ios::binary);
    if (file_stream.is_open() == false || file_stream.good() == false)
        return false;

    file_stream.seekg(0, std::ios::beg);
    std::fstream::pos_type length = file_stream.tellg();
    file_stream.seekg(0, std::ios::end);
    length = file_stream.tellg() - length;
    file_stream.seekg (0, std::ios::beg);

    char* content = new char[length];
    file_stream.read(content, length);
    file_stream.close();
    // mach was mit content ... 
    std::cout &lt;&lt; content &lt;&lt; std::endl;
    // nur am Ende:
    delete [] content;
    return true;
}
</code></pre>
<p><strong>Edit</strong><br />
Hmm ... zu spät ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243948</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 12 Mar 2007 12:49:23 GMT</pubDate></item></channel></rss>