<?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[Serialisierung von Daten]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich brauche eine sehr einfaceh und nicht besonders sichere Methode (zum testen) um ein object der Form</p>
<pre><code class="language-cpp">struct test
{
   bool var1;
   long var2;
   size_t length;
   unsigned char* data;
};
</code></pre>
<p>zu serialisieren (wird später über einen socket geschickt...).<br />
Bevor der pointer dazu kam konnte ich ein einfaches memcpy machen. Jetzt geht das nicht mehr. Stehe gerade auf der Leitung.</p>
<p>Danke für nen Denkanstoß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128108/serialisierung-von-daten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 09:22:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128108.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Nov 2005 13:37:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 13:37:52 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich brauche eine sehr einfaceh und nicht besonders sichere Methode (zum testen) um ein object der Form</p>
<pre><code class="language-cpp">struct test
{
   bool var1;
   long var2;
   size_t length;
   unsigned char* data;
};
</code></pre>
<p>zu serialisieren (wird später über einen socket geschickt...).<br />
Bevor der pointer dazu kam konnte ich ein einfaches memcpy machen. Jetzt geht das nicht mehr. Stehe gerade auf der Leitung.</p>
<p>Danke für nen Denkanstoß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/930578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930578</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 30 Nov 2005 13:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 13:48:49 GMT]]></title><description><![CDATA[<p>Würde es für dich reichen, das als Text-Repräsentation zu bekommen? Und dem Fall ist das folgende eventuell schon ausreichend:</p>
<pre><code class="language-cpp">stringstream sout;
sout&lt;&lt;x.var1&lt;&lt;' '&lt;&lt;x.var2&lt;&lt;' '&lt;&lt;x.length&lt;&lt;' '&lt;&lt;x.data;
return sout.getbuffer();//bei dem Befehl bin ich etwas unsicher
</code></pre>
<p>Ansonsten benötigst du wohl statt des &quot;einfachen&quot; memcpy() ein doppeltes - erst die intern gespeicherten Daten (var1, var2, length) in den Ausgabespeicher schreiben, dahinter dann den Inhalt von *data.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/930593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930593</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 30 Nov 2005 13:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 14:16:22 GMT]]></title><description><![CDATA[<p>Danke dass mit dem stringstream hab ich mir auch überlegt, aber ich denke data wird dann bis zur nächsten '\0' eingelesen. Gibt es denn keinen binary_stream oder sowas?<br />
Muss dann wohl mit dem memcpy rumprobieren. Dachte die Zeiten wären in c++ vorbei...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/930618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930618</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 30 Nov 2005 14:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 14:39:58 GMT]]></title><description><![CDATA[<p>Funktioniert soweit. Ist natürlich nicht schön...</p>
<pre><code class="language-cpp">void serialize(unsigned char*&amp; serializedData, size_t&amp; dataLength) const
   {
      dataLength = sizeof(test) + length;
      serializedData = new unsigned char[dataLength];
      memcpy(serializedData, this, sizeof(test));
      memcpy(serializedData + sizeof(test), data, length);
   }

   void deserialize(const unsigned char* serializedData, size_t dataLength)
   {
      assert(data == NULL);
      memcpy(this, serializedData, sizeof(test));
      data = new unsigned char[this-&gt;length];

      memcpy(data, serializedData + sizeof(test), this-&gt;length);
   }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/930653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930653</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 30 Nov 2005 14:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 14:54:25 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>Funktioniert soweit. Ist natürlich nicht schön...</p>
</blockquote>
<p>Es funktioniert auch nicht, denn er hat da nen Pointer auf nen String.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/930669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930669</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Wed, 30 Nov 2005 14:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 15:08:41 GMT]]></title><description><![CDATA[<p>Du musst deine Objekte selbst als ASCII serialisierbar machen.<br />
Nur ein Beispiel:</p>
<pre><code class="language-cpp">ostringstream os;
os &lt;&lt; &quot;Typ: test&quot; &lt;&lt; end &lt;&lt; var1 &lt;&lt; endl &lt;&lt; var2 &lt;&lt; endl &lt;&lt; length &lt;&lt; endl &lt;&lt; *data &lt;&lt; endl;
</code></pre>
<p>Und dann kannste das Ding raus hauen. Jedenfalls mußt du dir irgendwie ein Format ausdenken, das auf der anderen Seite wieder vernünftig geparst werden kann. Die andere Seite weiß z.B. das Typ Test 4 Attribute hat. Anhand der endl's kann er sie trennen und parsen.</p>
<p>Aber ich würde das ganze am besten als XML serialisieren, da man damit komplexere Strukturen bauen kann. Und dann würd ich mal langsam aber sicher auf std::string umsteigen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/930684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930684</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 30 Nov 2005 15:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Wed, 30 Nov 2005 15:10:35 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>Gibt es denn keinen binary_stream</p>
</blockquote>
<p>Sowas wäre ja coool <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/930693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930693</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 30 Nov 2005 15:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to Serialisierung von Daten on Thu, 01 Dec 2005 07:44:36 GMT]]></title><description><![CDATA[<p>Freak_Coder schrieb:</p>
<blockquote>
<p>templäd schrieb:</p>
<blockquote>
<p>Gibt es denn keinen binary_stream</p>
</blockquote>
<p>Sowas wäre ja coool <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
</blockquote>
<p>selber schreiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Die STL ist flexibel genug, um dort eigene Stream-Klassen einzuarbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931131</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Dec 2005 07:44:36 GMT</pubDate></item></channel></rss>