<?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 vergleichen]]></title><description><![CDATA[<p>Weis jetzt nicht ob ich hier richtig bin.</p>
<p>ich suche nach einer möglichkeit eine Array von Bytes zu vergleichen.</p>
<p>Die erste möglichkeit die ich suche wäre, zu prüfen ob in einer Array aus Bytes eine bestimmte Byte reihenfolge forhanden ist.<br />
ähnlich der funktion StrCSpnI bzw der CString::Find funktion.</p>
<p>die zweite möglichkeit die ich suche wäre Bytes zu vergleichen ob in einer Byte Array genau das gleiche steht wie in einer andere<br />
Byte Array. ähnlich der funktion StrCmpI == funzt ja hier nicht</p>
<p>kann mir da jemand weiterhelfen</p>
<p>mfg</p>
<p>ByteArray</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178502/bytes-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 23:03:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178502.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Apr 2007 17:50:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bytes vergleichen on Wed, 11 Apr 2007 17:50:14 GMT]]></title><description><![CDATA[<p>Weis jetzt nicht ob ich hier richtig bin.</p>
<p>ich suche nach einer möglichkeit eine Array von Bytes zu vergleichen.</p>
<p>Die erste möglichkeit die ich suche wäre, zu prüfen ob in einer Array aus Bytes eine bestimmte Byte reihenfolge forhanden ist.<br />
ähnlich der funktion StrCSpnI bzw der CString::Find funktion.</p>
<p>die zweite möglichkeit die ich suche wäre Bytes zu vergleichen ob in einer Byte Array genau das gleiche steht wie in einer andere<br />
Byte Array. ähnlich der funktion StrCmpI == funzt ja hier nicht</p>
<p>kann mir da jemand weiterhelfen</p>
<p>mfg</p>
<p>ByteArray</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264066</guid><dc:creator><![CDATA[ByteArray]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:50:14 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Wed, 11 Apr 2007 17:55:52 GMT]]></title><description><![CDATA[<p>für zweitens <a href="http://man.cx/memcmp(3)" rel="nofollow">man: memcmp(3)</a></p>
<p>Für ersteres könntest du std::find_if benutzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264070</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Wed, 11 Apr 2007 18:27:25 GMT]]></title><description><![CDATA[<p>also<br />
memcmp is schonmal super danke für den tip.</p>
<p>aber mit find_if komm ich noch nicht so klar.</p>
<p>nehmen wir mal an ich haben einen Text als ByteArray vor mir liegen &amp; suche in der ByteArray nach einem Namen zb (Marcus)<br />
der ja auch eine ByteArray ist. So wie ich find_if versteh vergleicht es ja nur die einzelnen listenelemente.<br />
somit müßte ich doch auch erst einmal jedes einzelne Byte aus der ByteArray in diese Liste packen und dann vergleichen.</p>
<p>wobei mir dann noch nicht ganz klar ist wie ich den Namen finden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264102</guid><dc:creator><![CDATA[ByteArray]]></dc:creator><pubDate>Wed, 11 Apr 2007 18:27:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Wed, 11 Apr 2007 19:01:10 GMT]]></title><description><![CDATA[<p>Wenn Dein Byte-array null-terminiert ist, könntest Du strstr benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264129</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Wed, 11 Apr 2007 19:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Wed, 11 Apr 2007 19:11:23 GMT]]></title><description><![CDATA[<p>ByteArray schrieb:</p>
<blockquote>
<p>...<br />
Die erste möglichkeit die ich suche wäre, zu prüfen ob in einer Array aus Bytes eine bestimmte Byte reihenfolge forhanden ist.<br />
...<br />
ByteArray</p>
</blockquote>
<p>Das kannst du auch mit memcmp() erledigen - musste mal richtig durchdenken.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264135</guid><dc:creator><![CDATA[gerie]]></dc:creator><pubDate>Wed, 11 Apr 2007 19:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Thu, 12 Apr 2007 12:17:34 GMT]]></title><description><![CDATA[<p>hmmm,<br />
also null terminiert ist die ByteArray nicht. hab es allerdings bei beiden (der zu durchsuchenden &amp; der gesuchgten ByteArray) mit<br />
ByteArray+='\0';<br />
versucht, nur findet er dann nichts.</p>
<p>@gerie<br />
um das nur mit memcmp() zu erledigen, fehlt mir das verständniss, das in einen kurzen Algorithmus zu packen, der das dann auch findet was ich such.<br />
ansonsten würde mir eben nur einfallen memcmp() in eine Forschleife zu packen. Da es aber riesige datenmengen sind und ich etwas<br />
ähnliches schon bewerkstelligt habe (forschleife die ByteArray Byte weise durchsucht), dies ewig lange dauert, fällt diese option flach.</p>
<p>An was hast du gedacht? wie würdest du es lösen?<br />
bzw. jeder andere auch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264602</guid><dc:creator><![CDATA[ByteArray]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Thu, 12 Apr 2007 12:24:51 GMT]]></title><description><![CDATA[<p>ByteArray schrieb:</p>
<blockquote>
<p>hmmm,<br />
also null terminiert ist die ByteArray nicht. hab es allerdings bei beiden (der zu durchsuchenden &amp; der gesuchgten ByteArray) mit<br />
ByteArray+='\0';<br />
versucht, nur findet er dann nichts.</p>
</blockquote>
<p>Wie genau ist denn &quot;ByteArray&quot; definiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264610</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Thu, 12 Apr 2007 12:30:46 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie genau ist denn &quot;ByteArray&quot; definiert?</p>
</blockquote>
<p>versteh jetzt nicht was du damit meinst</p>
<p>evtl das?</p>
<p>BYTE *byArray = new BYTE[Dateigröße+1];</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264616</guid><dc:creator><![CDATA[ByteArray]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:30:46 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Thu, 12 Apr 2007 12:56:29 GMT]]></title><description><![CDATA[<p>Wenn du es so definiert hast, ist dein ByteArray+='\0' definitiv falsch - das verschiebt den Zeiger nur (um 0 Bytes). Mach mal lieber ein <code>ByteArray[Dateigroesse]='\0';</code> , danach kannst du mit strstr() loslegen. (oder besser, pack die Daten in einen String und such mit dessen find())</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264643</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Thu, 12 Apr 2007 12:58:25 GMT]]></title><description><![CDATA[<p>hmm und wie hast Du dort den += Operator angewendet?</p>
<p>Angenommen, Dein Array benötigt 100 bytes. Dann machst Du stattdessen:</p>
<pre><code class="language-cpp">BYTE *pB = new BYTE[100+1];
//Code zum Einlesen des Arrays
pB[100] = 0;
</code></pre>
<p>Angenommen, Du suchst jetzt nach dem Muster {0x12,0x13,0x14,0x15}:</p>
<pre><code class="language-cpp">BYTE pBSearch[] =  {0x12,0x13,0x14,0x15, 0x00};
</code></pre>
<p>Jetzt sind beide Arrays NULL-terminiert und Du kannst strstr anwenden:</p>
<pre><code class="language-cpp">BYTE *pGefunden = (BYTE*) strstr((char*)pB, (const char*)pBSearch);
</code></pre>
<p>wenn pGefunden != NULL dann gabs eine Übereinstimmung, nämlich genau bei pGefunden.<br />
BYTE ist nun mal nichts anderes als ein unsigned char (Integer Wert 0 -&gt; 255)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264646</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:58:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bytes vergleichen on Thu, 12 Apr 2007 15:46:04 GMT]]></title><description><![CDATA[<p>hab das mit strstr versucht nur leider gab es da probleme da es Nullen in der zu durchsuchenden ByteArray gab. hab dann duch längeres googlen nen code gefunden den ich für mich umgeschrieben hab und der funzt jetzt super.</p>
<p>kurz knackig und extrem schnell.</p>
<pre><code class="language-cpp">BYTE *FindByte(BYTE *byDestination, DWORD dl, BYTE *bySource, DWORD sl) 
{	/**********************************************************************************************
										FIND BYTE
				Sucht in der Übergebenen Ziel Array nach einer Bezugs Array

			- byDestination Zeil Array in der gesucht wird
			- dl länge/größe der Zeil Array
			- bySource Bezugs Array die gesucht wird
			- sl länge/größe der Bezugs Array

	**********************************************************************************************/

	BYTE *p;

	for (p = byDestination; p &lt;= (byDestination-sl+dl); p++)
	{
		if (memcmp(p, bySource, sl) == 0)
			return p; /* gefunden */
	}

	return NULL;
}
</code></pre>
<p>danke an alle die mir geholfen haben<br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264786</guid><dc:creator><![CDATA[ByteArray]]></dc:creator><pubDate>Thu, 12 Apr 2007 15:46:04 GMT</pubDate></item></channel></rss>