<?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[Probleme mit dynamischer Struktur]]></title><description><![CDATA[<p>Hey @all,</p>
<p>ich habe vor Personen und spezifische Daten aufzunehmen, und diese anschließend in einer Datei zu speichern.</p>
<p>Bisher habe ich es wie folgt gemacht:</p>
<pre><code class="language-cpp">struct PersonDat {
  char name[80];
.
.
.
};

struct SpecDat {
  char web_link[80];
  char mail_adr[30];
.
.
.
};

struct Data {
  struct PersonDat person;
  struct SpecDat specific;
};
</code></pre>
<p>Mein Problem was ich jetzt habe ist, das jede Person mehrere Email-Adressen oder Webseiten haben kann, die er eintragen möchte. Wie kann ich das am besten lösen, damit ich keine probleme mit dem Einlesen der Daten bekomme, und ich es schön/effektiv im Programm verwalten kann?</p>
<p>Vielen dank im Voraus</p>
<p>Lg _freeze_</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/114864/probleme-mit-dynamischer-struktur</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 03:42:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/114864.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Jul 2005 11:22:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 11:22:16 GMT]]></title><description><![CDATA[<p>Hey @all,</p>
<p>ich habe vor Personen und spezifische Daten aufzunehmen, und diese anschließend in einer Datei zu speichern.</p>
<p>Bisher habe ich es wie folgt gemacht:</p>
<pre><code class="language-cpp">struct PersonDat {
  char name[80];
.
.
.
};

struct SpecDat {
  char web_link[80];
  char mail_adr[30];
.
.
.
};

struct Data {
  struct PersonDat person;
  struct SpecDat specific;
};
</code></pre>
<p>Mein Problem was ich jetzt habe ist, das jede Person mehrere Email-Adressen oder Webseiten haben kann, die er eintragen möchte. Wie kann ich das am besten lösen, damit ich keine probleme mit dem Einlesen der Daten bekomme, und ich es schön/effektiv im Programm verwalten kann?</p>
<p>Vielen dank im Voraus</p>
<p>Lg _freeze_</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826630</guid><dc:creator><![CDATA[_freeze_]]></dc:creator><pubDate>Fri, 08 Jul 2005 11:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 11:28:35 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>statt char-Array lieber AnsiString verwenden.<br />
<a href="http://bcb-tutorial.c-plusplus.net/Ansi/index.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/Ansi/index.html</a></p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826639</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 08 Jul 2005 11:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 11:35:22 GMT]]></title><description><![CDATA[<p>du kannst für die E-mail adresse zB ein Array brauchen.</p>
<pre><code class="language-cpp">struct SpecDat 
{
  char web_link[10][80];
  char mail_adr[10][30];
}
</code></pre>
<p>wobei ich dir aber eher zu AnsiString raten würde, als char[](ist ansichtssache)<br />
so ersparst du dir aber probleme mit der länge des Strings</p>
<pre><code class="language-cpp">struct SpecDat 
{
  AnsiString web_link[10];
  AnsiString mail_adr[10];
}
</code></pre>
<p>und wenn du die länge des Arrays dynamisch verwalten möchtest, währe DynamicArray ne möglichkeit</p>
<pre><code class="language-cpp">struct SpecDat 
{
   DynamicArray&lt;AnsiString&gt; web_link;
   DynamicArray&lt;AnsiString&gt; mail_adr;
}
</code></pre>
<p>oder einfach ne vorgefertigte Klasse verwenden. zB TListBox</p>
<pre><code class="language-cpp">struct SpecDat 
{
  TListBox *web_link;
  TListBox *mail_adr;
}
</code></pre>
<p>läst sich dan auch gut optisch darstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826645</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Fri, 08 Jul 2005 11:35:22 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 11:39:24 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten, jedoch kann man das auch irgendwie mit Ansi C++ lösen? Den wenn ich std::string verwende, dann ändert sich ja bei jedem Eintrag die Länge des strings...und somit bekomme ich ja dann Probleme beim Einlesen.</p>
<p>Die Informationen würde ich da wie folgt in die Dateien schreiben</p>
<pre><code class="language-cpp">file.write(reinterpret_cast&lt;char*&gt;(&amp;Data), sizeof(Data));
</code></pre>
<p>Lg _freeze_</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826649</guid><dc:creator><![CDATA[_freeze_]]></dc:creator><pubDate>Fri, 08 Jul 2005 11:39:24 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 12:31:51 GMT]]></title><description><![CDATA[<p>Bei std::string mußt du halt vorher die Länge des Strings mit abspeichern. Du kannst dir für sowas auch einfach jeweils read/write Methoden schreiben, die das für dich übernehmen oder den String in eine extra Klasse packen die das für dich macht (mach ich so). Statt statischer Arrays oder DynamicArray sollte man dann auch lieber std::vector verwenden. Wobei man auch hier die Länge vorher mit speichern muß. Wenn man das alles in deine Klassen integriert (read/write-Methoden) gibt es keine Probleme mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826690</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 08 Jul 2005 12:31:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 12:34:19 GMT]]></title><description><![CDATA[<p>Ja, sowas hatte ich mir schon gedacht, nur wie sollte dann so eine Klasse aussehen? Ich meine da muss ich ja dann für jedes Element eine Set/Get Methode schreiben zum lesen und Schreiben in die Form. Zusätzlich müsste ich dann ja quasi Tags mit in die Datei schreiben, damit ich weiß welche Information wohin gehört...oder denke ich da etwas zu kompliziert?</p>
<p>Kannst Du mir ev. zeigen wie Du das meinst mit der Klasse?</p>
<p>Lg _freeze_</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826693</guid><dc:creator><![CDATA[_freeze_]]></dc:creator><pubDate>Fri, 08 Jul 2005 12:34:19 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Mon, 11 Jul 2005 09:04:01 GMT]]></title><description><![CDATA[<p>Ich kenn jetzt deine Klassenstruktur zu wenig um das konkret zu sagen. Ich würde für jede Einzelklasse read/write-Methoden schreiben (die bloß eine Referenz auf den Stream übernehmen). Die übergeordneten Klassen müssen dann nur noch diese Methoden innerhalb ihrer eigenen read/write Methoden aufrufen. Etwa so:</p>
<pre><code class="language-cpp">struct string_adapter
{
   std:: string str;
   void write(std::ostream &amp;out)
   {
      int length = str.length();
      out.write((char*)(&amp;length),sizeof(length));
      out.write(str.c_str(), size);
   }
   int  read(std::istream &amp;in)
   {
      int length;
      int size = in.read((char*)(&amp;length),sizeof(length));
      char* buffer = new char[length+1];
      size = in.read(buffer,length);
      buffer[length] = '\0';
      str = buffer;
      delete[] buffer;  // edit
   }
};

struct string_vect
{
   std::vector&lt;string_adapter&gt; strvect;
   void write(std::ostream &amp;out)
   {
      int length = strvect.size();
      out.write((char*)(&amp;length),sizeof(length));
      for( unsigned int i=0; i&lt;length; ++i)
         strvect.write(out);
   }
// und so weiter
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/826704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826704</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 11 Jul 2005 09:04:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 13:05:58 GMT]]></title><description><![CDATA[<p>Ähm...jetzt haben wir glaube ich aneinander vorbeigeredet.<br />
Hatte mich nicht klar genug geäußert.</p>
<p>Und zwar hattest Du gesagt, das ich die Weblinks/Emailadressen usw. in Vectoren pushen soll, soviele wie der Benutzer halt benötigt...ok ist verständlich.</p>
<p>das ganze würde dann ja so aussehen:</p>
<pre><code class="language-cpp">struct Weblinks {
  std::string link;
};

struct PersonDat {
  std::string name;
  std::vector&lt;Weblinks&gt; vWebLink;
};
</code></pre>
<p>und als Write Methode nehme ich dann nur den namen, schreibe die länge, schreibe den namen....danach schreibe ich die Anzahl der Links(im Vector) und schreibe für jeden Link die Länge inkl. text in die datei...ist das so richtig, oder geht das auch einfacher?</p>
<p>Lg _freeze_</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826712</guid><dc:creator><![CDATA[_freeze_]]></dc:creator><pubDate>Fri, 08 Jul 2005 13:05:58 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dynamischer Struktur on Fri, 08 Jul 2005 22:00:16 GMT]]></title><description><![CDATA[<p>Hallo _freeze,</p>
<p>ich weiß ja nicht wie das ganze Projekt aussieht, aber das scheint mir doch eher ein Fall für ne Datenbank. Eine Tabelle für die Leute und eine verlinkte Tabelle für Mailadressen, dann kann jeder soviel Mailadressen haben wie er will. Die ganze Soße sortiert in ein File copieren möchte auch gehen. Mit BCB eine einfache Lösung. Und die Wartung der Daten geht auch einfacher.</p>
<p>manchmal hilft ein neuer Ansatz...</p>
<p>Gruß rudiS</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826959</guid><dc:creator><![CDATA[rudiS]]></dc:creator><pubDate>Fri, 08 Jul 2005 22:00:16 GMT</pubDate></item></channel></rss>