<?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ärstream -&amp;gt; konvertierung dynamischer Daten ...]]></title><description><![CDATA[<p><strong>Vorwort :</strong></p>
<p>Mir geht es nicht um eine komplette Lösung als mehr um ein Ansatzpunkt bzw ein zwei Schlagworte unter denen ich was finde was mir weiter hilft. Die Problemschilderung ist absichtlich sehr Bildlich gehalten zum besseren Verständniss.</p>
<p><strong>Folgendes Problem :</strong></p>
<p>- Ich habe Datenbestände in verschiedenen Tabellen<br />
- Diese Tabellen liegen als Binärstream vor<br />
- Die Zeilen sollen immer einen Datensatz bilden<br />
- Jede Tabelle hat unterschiedlich viele Spalten<br />
- Die Spalten haben von Tabelle zu Tabele haben unterschiedliche Datentypen zb Int string dobule float usw ...</p>
<p><strong>Vorhanden ist :</strong></p>
<p>- eine Info-Datei mit Anzahl der Spalten und Angabe des Datentyps der entsprechenden Spalte<br />
- Der Datenbestand selber ist in einer extra Datei ( Binär abgespeichert) vorhanden</p>
<p><strong>Was ich nun brauche ist :</strong></p>
<p>- Nen Dynamisches Array (Anzahl der Zeilen, Datensätze) von einem Dynamischen Struct (Anzahl und Datentyp der Spalten) welches mein Datensatz ist.</p>
<p><strong>Ziel ist :</strong></p>
<p>Ein Converter der die Infodatei ausliest und dadurch in der Lage ist den Datenbestand in den Speicher zu laden wo ich ihn dann weiter verarbeiten bzw bearbeiten kann.</p>
<p><strong>Ideen ? <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="😉"
    /></strong></p>
<p>...</p>
<p>... Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174527/binärstream-gt-konvertierung-dynamischer-daten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 18:16:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174527.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Feb 2007 10:58:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Binärstream -&amp;gt; konvertierung dynamischer Daten ... on Wed, 28 Feb 2007 10:58:40 GMT]]></title><description><![CDATA[<p><strong>Vorwort :</strong></p>
<p>Mir geht es nicht um eine komplette Lösung als mehr um ein Ansatzpunkt bzw ein zwei Schlagworte unter denen ich was finde was mir weiter hilft. Die Problemschilderung ist absichtlich sehr Bildlich gehalten zum besseren Verständniss.</p>
<p><strong>Folgendes Problem :</strong></p>
<p>- Ich habe Datenbestände in verschiedenen Tabellen<br />
- Diese Tabellen liegen als Binärstream vor<br />
- Die Zeilen sollen immer einen Datensatz bilden<br />
- Jede Tabelle hat unterschiedlich viele Spalten<br />
- Die Spalten haben von Tabelle zu Tabele haben unterschiedliche Datentypen zb Int string dobule float usw ...</p>
<p><strong>Vorhanden ist :</strong></p>
<p>- eine Info-Datei mit Anzahl der Spalten und Angabe des Datentyps der entsprechenden Spalte<br />
- Der Datenbestand selber ist in einer extra Datei ( Binär abgespeichert) vorhanden</p>
<p><strong>Was ich nun brauche ist :</strong></p>
<p>- Nen Dynamisches Array (Anzahl der Zeilen, Datensätze) von einem Dynamischen Struct (Anzahl und Datentyp der Spalten) welches mein Datensatz ist.</p>
<p><strong>Ziel ist :</strong></p>
<p>Ein Converter der die Infodatei ausliest und dadurch in der Lage ist den Datenbestand in den Speicher zu laden wo ich ihn dann weiter verarbeiten bzw bearbeiten kann.</p>
<p><strong>Ideen ? <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="😉"
    /></strong></p>
<p>...</p>
<p>... Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236687</guid><dc:creator><![CDATA[Dufa]]></dc:creator><pubDate>Wed, 28 Feb 2007 10:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to Binärstream -&amp;gt; konvertierung dynamischer Daten ... on Wed, 28 Feb 2007 11:16:21 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du kommst um manuelle Auswertung der Werte nicht umhin. Es gibt keine dynamischen structs, deren Member zur Laufzeit den Typ und Anzahl wechseln können.</p>
<p>Wenn du wirklich zur Laufzeit dynamische Typen brauchst, ist eine polymorphe Werteklasse das richtige. So ähnlich wie es die DBE mit TField macht.<br />
Also du hast eine abstrakte Basisklasse Value, die nicht viel kann außer allgemeine virtuellen Methoden wie ReadFromBinaryStream und ToLabelString als Interface bereitstellen.<br />
Darauf setzt du abgeleitete Klassen wie IntegerValue, die für die Interface-Methoden nun konkrete Implementationen anbieten und den Wert typecht zwischenspeichern. Das ganze läßt sich mit Templates auch noch schön systematisieren.<br />
Du must beim Einlesen eines Datensatzes aus den Spalteninfos jeweils nacheinander ein typ-richtiges Value-Objekt erstellen (Factory-Pattern) und dann dieses Objekt seinen Wert aus dem Stream lesen lassen.<br />
Hast du das Interface-Konzept richtig gekapselt brauchst du im besten Fall für alle nachfolgenden Operationen von außen heraus nicht mehr zu wissen was für ein Typ eine Wertklasse genau hat, schlimmstenfalls must du casten.</p>
<p>Der Container für die Struktur ist dann schnell definiert :<br />
Ein Datensatz ist eine dynamische Sammlung von Wert-Objekten</p>
<pre><code class="language-cpp">typedef std::vector&lt;BaseValue*&gt; Record;
</code></pre>
<p>und eine Tabelle ist eine dynamische Sammlung von Datensätzen</p>
<pre><code class="language-cpp">typedef std::vector&lt;Record&gt; Table;
</code></pre>
<p>Du must dich nur noch um die Speicherverwaltung der Werte-Objekte kümmern, die dynamischen Arrays sind dann aber selbstverwaltend.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236697</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 28 Feb 2007 11:16:21 GMT</pubDate></item><item><title><![CDATA[Reply to Binärstream -&amp;gt; konvertierung dynamischer Daten ... on Wed, 28 Feb 2007 11:58:02 GMT]]></title><description><![CDATA[<p>Klasse das ging ja fix. Firma dankt, ich werd mir das gleich mal anschauen <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/1236725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236725</guid><dc:creator><![CDATA[Dufa]]></dc:creator><pubDate>Wed, 28 Feb 2007 11:58:02 GMT</pubDate></item></channel></rss>