<?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ärdateien teilweise überschreiben]]></title><description><![CDATA[<p>Ich will einen code schreiben, der den 11. Byte (also stelle 10) mit &quot;1D&quot; (0x steht für hexadezimal) überschreibt. Dazu hab ich folgenden code erstellt:</p>
<pre><code>#include &lt;fstream&gt;

using namespace std;
ofstream output;

int main() {
  output.open(&quot;C:\\2.z64&quot;, ios::binary | ios::out);
  output.seekp(10,ios_base::beg);
  output.put (0x1D);
  output.close();
}
</code></pre>
<p>Das Problem:<br />
Alles, was nach dem 11. Byte kommt, wird gelöscht. Außerdem wird alles, was davor kommt zu &quot;00&quot;;<br />
Meine Idee war, das alles Temporär in eine 2. Datei zu speichern und es danach zu editieren. Das Problem ist, dass das bei den Dateien, die ich später bearbeiten muss, etwa 2 Minuten dauern würde (vielleicht war meine Methode auch einfach schlecht...). Kann mir jemand verraten, wie ich dir Bytes direkt bearbeiten kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319229/binärdateien-teilweise-überschreiben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 22:46:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319229.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Aug 2013 13:43:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Binärdateien teilweise überschreiben on Sun, 11 Aug 2013 13:47:19 GMT]]></title><description><![CDATA[<p>Ich will einen code schreiben, der den 11. Byte (also stelle 10) mit &quot;1D&quot; (0x steht für hexadezimal) überschreibt. Dazu hab ich folgenden code erstellt:</p>
<pre><code>#include &lt;fstream&gt;

using namespace std;
ofstream output;

int main() {
  output.open(&quot;C:\\2.z64&quot;, ios::binary | ios::out);
  output.seekp(10,ios_base::beg);
  output.put (0x1D);
  output.close();
}
</code></pre>
<p>Das Problem:<br />
Alles, was nach dem 11. Byte kommt, wird gelöscht. Außerdem wird alles, was davor kommt zu &quot;00&quot;;<br />
Meine Idee war, das alles Temporär in eine 2. Datei zu speichern und es danach zu editieren. Das Problem ist, dass das bei den Dateien, die ich später bearbeiten muss, etwa 2 Minuten dauern würde (vielleicht war meine Methode auch einfach schlecht...). Kann mir jemand verraten, wie ich dir Bytes direkt bearbeiten kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344995</guid><dc:creator><![CDATA[Kazeshin]]></dc:creator><pubDate>Sun, 11 Aug 2013 13:47:19 GMT</pubDate></item><item><title><![CDATA[Reply to Binärdateien teilweise überschreiben on Sun, 11 Aug 2013 13:54:50 GMT]]></title><description><![CDATA[<p>Du öffnest die Datei im truncate Mode. Die Datei wird quasi vor dem öffnen gelöscht und neu erstellt mit keinem Inhalt.</p>
<p>Nimm einfach std::ios::app und setzt den Stream auf den Anfang zurück, dann kannst du mittendrin rumwurschteln.</p>
<p>Alternativ und manchmal besser ist das komplette Einlesend er Datei. Dann bearbeitest du den Inhalt in deiner Datenstruktur und schreibst alles wieder in eine frische Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344998</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 11 Aug 2013 13:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to Binärdateien teilweise überschreiben on Sun, 11 Aug 2013 14:02:14 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Du öffnest die Datei im truncate Mode. Die Datei wird quasi vor dem öffnen gelöscht und neu erstellt mit keinem Inhalt.</p>
<p>Nimm einfach std::ios::app und setzt den Stream auf den Anfang zurück, dann kannst du mittendrin rumwurschteln.</p>
<p>Alternativ und manchmal besser ist das komplette Einlesend er Datei. Dann bearbeitest du den Inhalt in deiner Datenstruktur und schreibst alles wieder in eine frische Datei.</p>
</blockquote>
<p>wenn ich's mit ios::app öffne, schreibt er immer ans ende, egal wie ich .seekp setze;<br />
das mit dem truncate mode hat mir allerdings geholfen^^ wenn ich's mit ios::in öffne, bleibt mir die alte Datei erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345000</guid><dc:creator><![CDATA[Kazeshin]]></dc:creator><pubDate>Sun, 11 Aug 2013 14:02:14 GMT</pubDate></item><item><title><![CDATA[Reply to Binärdateien teilweise überschreiben on Sun, 11 Aug 2013 14:03:40 GMT]]></title><description><![CDATA[<p>Kazeshin schrieb:</p>
<blockquote>
<p>Ich will einen code schreiben, der den 11. Byte (also stelle 10) mit &quot;1D&quot; (0x steht für hexadezimal) überschreibt. Dazu hab ich folgenden code erstellt:</p>
<pre><code>#include &lt;fstream&gt;

using namespace std;
ofstream output;

int main() {
  output.open(&quot;C:\\2.z64&quot;, ios::binary | ios::out);
  output.seekp(10,ios_base::beg);
  output.put (0x1D);
  output.close();
}
</code></pre>
</blockquote>
<p>Das geht nicht. Du kannst nur hinten etwas anhängen, mehr nicht. Siehe auch hier: <a href="http://www.c-plusplus.net/forum/318605-full" rel="nofollow">http://www.c-plusplus.net/forum/318605-full</a></p>
<p>Ansonsten einfach Datei einlesen, bearbeiten, komplett zurückschreiben. Und wieso soll das 2 Minuten dauern? Du kannst eine 100MB Datei innerhalb Sekunden einlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345001</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 11 Aug 2013 14:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to Binärdateien teilweise überschreiben on Sun, 11 Aug 2013 14:15:21 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Kazeshin schrieb:</p>
<blockquote>
<p>Ich will einen code schreiben, der den 11. Byte (also stelle 10) mit &quot;1D&quot; (0x steht für hexadezimal) überschreibt. Dazu hab ich folgenden code erstellt:</p>
<pre><code>#include &lt;fstream&gt;

using namespace std;
ofstream output;

int main() {
  output.open(&quot;C:\\2.z64&quot;, ios::binary | ios::out);
  output.seekp(10,ios_base::beg);
  output.put (0x1D);
  output.close();
}
</code></pre>
</blockquote>
<p>Das geht nicht. Du kannst nur hinten etwas anhängen, mehr nicht. Siehe auch hier: <a href="http://www.c-plusplus.net/forum/318605-full" rel="nofollow">http://www.c-plusplus.net/forum/318605-full</a></p>
</blockquote>
<p>Klar geht das. Du kannst bloß nichts einfügen in der Mitte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345006</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 11 Aug 2013 14:15:21 GMT</pubDate></item><item><title><![CDATA[Reply to Binärdateien teilweise überschreiben on Sun, 11 Aug 2013 15:22:28 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>out schrieb:</p>
<blockquote>
<p>Kazeshin schrieb:</p>
<blockquote>
<p>Ich will einen code schreiben, der den 11. Byte (also stelle 10) mit &quot;1D&quot; (0x steht für hexadezimal) überschreibt. Dazu hab ich folgenden code erstellt:</p>
<pre><code>#include &lt;fstream&gt;

using namespace std;
ofstream output;

int main() {
  output.open(&quot;C:\\2.z64&quot;, ios::binary | ios::out);
  output.seekp(10,ios_base::beg);
  output.put (0x1D);
  output.close();
}
</code></pre>
</blockquote>
<p>Das geht nicht. Du kannst nur hinten etwas anhängen, mehr nicht. Siehe auch hier: <a href="http://www.c-plusplus.net/forum/318605-full" rel="nofollow">http://www.c-plusplus.net/forum/318605-full</a></p>
</blockquote>
<p>Klar geht das. Du kannst bloß nichts einfügen in der Mitte.</p>
</blockquote>
<p>Ah er will ersetzen und nicht einfügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345021</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 11 Aug 2013 15:22:28 GMT</pubDate></item></channel></rss>