<?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[Bytes einlesen und vergleichen]]></title><description><![CDATA[<p>Hallo,</p>
<p>vorsicht Anfängerfrage *g*<br />
Ich möchte eine Datei Byteweise einlesen und vergleichen aber irgendwie finde ich keine Lösung, was ich bisher habe:</p>
<p>Dabei sollen jeweils 2 Bytes eingelesen werden und falls diese 0xFC, 0x00 sind ersetzt werden durch 0xC3, 0xBC. Hat jemand einen Lösungsansatz für mich?</p>
<pre><code>char buffer[2];

ifstream::pos_type size;

ifstream combatlog (&quot;combat.log&quot;, ios::in | ios::binary | ios::ate);

	if(combatlog.is_open())
	{
		size = combatlog.tellg();
		combatlog.seekg(0, ios::beg);
		while(!combatlog.eof())
		{
			combatlog.read(buffer, 2);
			if(buffer[0]==&quot;FC&quot; &amp;&amp; buffer[1]==&quot;00&quot;)
			{
				buffer[0] = &quot;C3&quot;;
				buffer[1] = &quot;BC&quot;;
				output.write(buffer, 2);
			} else
			{
			output.write(buffer, 2);
			}
		}
		combatlog.close();
	}
</code></pre>
<p>Schonmal Danke<br />
Jarmin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224381/bytes-einlesen-und-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 17:32:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224381.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Oct 2008 20:03:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bytes einlesen und vergleichen on Wed, 08 Oct 2008 20:03:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vorsicht Anfängerfrage *g*<br />
Ich möchte eine Datei Byteweise einlesen und vergleichen aber irgendwie finde ich keine Lösung, was ich bisher habe:</p>
<p>Dabei sollen jeweils 2 Bytes eingelesen werden und falls diese 0xFC, 0x00 sind ersetzt werden durch 0xC3, 0xBC. Hat jemand einen Lösungsansatz für mich?</p>
<pre><code>char buffer[2];

ifstream::pos_type size;

ifstream combatlog (&quot;combat.log&quot;, ios::in | ios::binary | ios::ate);

	if(combatlog.is_open())
	{
		size = combatlog.tellg();
		combatlog.seekg(0, ios::beg);
		while(!combatlog.eof())
		{
			combatlog.read(buffer, 2);
			if(buffer[0]==&quot;FC&quot; &amp;&amp; buffer[1]==&quot;00&quot;)
			{
				buffer[0] = &quot;C3&quot;;
				buffer[1] = &quot;BC&quot;;
				output.write(buffer, 2);
			} else
			{
			output.write(buffer, 2);
			}
		}
		combatlog.close();
	}
</code></pre>
<p>Schonmal Danke<br />
Jarmin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595862</guid><dc:creator><![CDATA[Jarmin]]></dc:creator><pubDate>Wed, 08 Oct 2008 20:03:04 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes einlesen und vergleichen on Wed, 08 Oct 2008 20:28:44 GMT]]></title><description><![CDATA[<p>&quot;FC&quot; ist ein string. die hexadezimale zahl heißt 0xFC.</p>
<pre><code class="language-cpp">if(buffer[0]==0xFC &amp;&amp; buffer[1]==0x00)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1595876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595876</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Wed, 08 Oct 2008 20:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes einlesen und vergleichen on Wed, 08 Oct 2008 20:46:08 GMT]]></title><description><![CDATA[<p>ja habe ich auch schon versucht, bringt aber allein nicht das ersehnte Ergebnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595884</guid><dc:creator><![CDATA[Jarmin]]></dc:creator><pubDate>Wed, 08 Oct 2008 20:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes einlesen und vergleichen on Wed, 08 Oct 2008 22:39:10 GMT]]></title><description><![CDATA[<p>habs mit memcmp() hinbekommen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595925</guid><dc:creator><![CDATA[Jarmin]]></dc:creator><pubDate>Wed, 08 Oct 2008 22:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes einlesen und vergleichen on Wed, 08 Oct 2008 22:43:03 GMT]]></title><description><![CDATA[<p>Jarmin schrieb:</p>
<blockquote>
<p>ja habe ich auch schon versucht, bringt aber allein nicht das ersehnte Ergebnis.</p>
</blockquote>
<p>Den Versuche sähe ich gerne einmal (nur aus Neugier ... und natürlich inklusive dem von Dir beobachteten und ungewünschten Verhalten).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595928</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 08 Oct 2008 22:43:03 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes einlesen und vergleichen on Thu, 09 Oct 2008 01:44:16 GMT]]></title><description><![CDATA[<p>Wenn ich den von dir geposteten Code mal als Vorlage nehme...</p>
<pre><code class="language-cpp">ifstream::pos_type size; // brauchen wir eigentlich nicht, oder?
    ifstream combatlog (&quot;combat.log&quot;, ios::in | ios::binary | ios::ate); 

    if (combatlog.is_open()) 
    { 
        size = combatlog.tellg(); 
        combatlog.seekg(0, ios::beg); 

        char lastChar;
        combatlog.read(&amp;lastChar, 1); 
        if (!combatlog.eof())
        {
            while(true) 
            {
                char thisChar;
                combatlog.read(&amp;thisChar, 1); 
                if (!combatlog.eof()) // eof() ist erst true nachdem ein versuch gemacht wurde ein zeichen zu lesen welches garnichtmehr da ist
                    break;            // also müssen wir auch NACH dem lesen prüfen

                if (lastChar == static_cast&lt;char&gt;(0xFC) &amp;&amp; thisChar == static_cast&lt;char&gt;(0x00)) 
                { 
                    lastChar = 0xC3; 
                    thisChar = 0xBC; 
                }
                output.write(&amp;lastChar, 1); 
                lastChar = thisChar;
            } 
            output.write(&amp;lastChar, 1); 
        }
        combatlog.close(); 
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1595960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595960</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 09 Oct 2008 01:44:16 GMT</pubDate></item></channel></rss>