<?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[Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste]]></title><description><![CDATA[<p>Halle zusammen!</p>
<p>Ich bin noch nich wirklich fit im Thema verkettete Listen. Hoffe ich kann das mit euch irgendwie lösen...</p>
<p>Eine txt Datei soll ausgelesen und der Inhalt konvertiert und in eine neue txt Datei geschrieben werden. Da stehen irgendwas um die 200 Datensätze drin. Klappt auch alles soweit.<br />
Nun will ich das ganze aber gerne noch mit ner verketteten Liste lösen. Also nicht den Inhalt des Objektes immer direkt nach einem Datensatz ausgeben, sondern alle 200 einlesen und erst dann in die neue Datei schreiben.<br />
Im Konstruktor der Klasse ClBibdaten setze ich alle Membervariablen=NULL.</p>
<p>Dann sag ich sowas wie:</p>
<pre><code class="language-cpp">if (var1!=NULL)
{
ClBibdaten *jetzt=new ClBibdaten;
jetzt-&gt;weiteres = wurzel;
wurzel = jetzt;
}
		inhaltPuffer[inhaltZaehler]='\0';
		var1 = new char[inhaltZaehler+1];
		strcpy(var1,inhaltPuffer);
		inhaltZaehler=0;
</code></pre>
<p>irgendwie so, oder? Ich glaub ich weiß auch was verkehrt ist, aber nicht wie ich es richtig mache. Das Objekt der Klasse ClBibdaten welches zum dem Zeitpunkt bearbeitet wird heißt bibdaten. Irgendwie muss das doch auch noch eingebaut werden, oder? Ich hoffe man kann mir folgen...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281974/datensätze-aus-textdatei-lesen-gt-verkettete-liste</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 09:42:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281974.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Feb 2011 12:41:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 12:41:19 GMT]]></title><description><![CDATA[<p>Halle zusammen!</p>
<p>Ich bin noch nich wirklich fit im Thema verkettete Listen. Hoffe ich kann das mit euch irgendwie lösen...</p>
<p>Eine txt Datei soll ausgelesen und der Inhalt konvertiert und in eine neue txt Datei geschrieben werden. Da stehen irgendwas um die 200 Datensätze drin. Klappt auch alles soweit.<br />
Nun will ich das ganze aber gerne noch mit ner verketteten Liste lösen. Also nicht den Inhalt des Objektes immer direkt nach einem Datensatz ausgeben, sondern alle 200 einlesen und erst dann in die neue Datei schreiben.<br />
Im Konstruktor der Klasse ClBibdaten setze ich alle Membervariablen=NULL.</p>
<p>Dann sag ich sowas wie:</p>
<pre><code class="language-cpp">if (var1!=NULL)
{
ClBibdaten *jetzt=new ClBibdaten;
jetzt-&gt;weiteres = wurzel;
wurzel = jetzt;
}
		inhaltPuffer[inhaltZaehler]='\0';
		var1 = new char[inhaltZaehler+1];
		strcpy(var1,inhaltPuffer);
		inhaltZaehler=0;
</code></pre>
<p>irgendwie so, oder? Ich glaub ich weiß auch was verkehrt ist, aber nicht wie ich es richtig mache. Das Objekt der Klasse ClBibdaten welches zum dem Zeitpunkt bearbeitet wird heißt bibdaten. Irgendwie muss das doch auch noch eingebaut werden, oder? Ich hoffe man kann mir folgen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019615</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Fri, 11 Feb 2011 12:41:19 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 12:58:26 GMT]]></title><description><![CDATA[<p>Nur um auf Nummer sicher zu gehen...<br />
Du möchtest (zu Übungszwecken) eine eigene Liste schreiben, oder?</p>
<p>Also generell ist es ziemlich unschön, dass dein ClBibdaten-Objekt<br />
auf Listenelement Informationen enthält (nächstes Element)</p>
<p>Generell willst du wohl eher sowas:</p>
<pre><code>-------       ------       ------
|Liste| ----&gt; |Elem| ----&gt; |Elem| ----&gt; ....
------- root  ------ next  ------
                 |            |
                 |            |
                 v            v
              -------       -------
              |Clbib|       |Clbib|
              -------       -------
</code></pre>
<p>Die Nächste-Element-Information hat in deinem Clbib wohl nichts verloren.</p>
<p>Gruß,<br />
XSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019630</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Fri, 11 Feb 2011 12:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 13:12:14 GMT]]></title><description><![CDATA[<p>Aber ich muss doch in der Klasse ClBibdaten ein weiteres Objekt der Klasse definieren, oder?</p>
<p>Zurzeit sieht meine Klasse so aus:</p>
<pre><code class="language-cpp">class ClBibdaten
{
public:

ClBibdaten();
char* printvar1() { return var1; }
char* printvar2() { return var2; }
char* printvar3() { return var3; }
.
.
.
char* printvarX() { return varX; }
void holeDaten (ifstream &amp;datei);
int find(char *s1, char *s2);
void druckeKomplett(void);
void löscheKomplett(void);
ClBibdaten *weiteres;

private:

char *var1;
char *var2;
char *var3;
.
.
.
char *varX;
};
</code></pre>
<p>ClBibdaten *weiteres muss doch da sein um überhaupt verkettete Listen zu ermöglichen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019639</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:12:14 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 13:14:35 GMT]]></title><description><![CDATA[<p>Achso:</p>
<p>Und wenn dannd er 2. Datensatz ausgelesen wird ist var1 ja schon mit irgend nem Inhalt belegt und nicht mehr = NULL.<br />
Daraufhin soll das Programm dann ein neues Objekt (*weiteres) anlegen und immer so weiter... So dass ich hinterher eine Liste von Objekten habe die alle Datensätze aus der ausgelesenen Datei beinhalten.</p>
<p>Hoffe es ist einigermaßen klar was ich meine <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/2019640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019640</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:14:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 13:22:45 GMT]]></title><description><![CDATA[<p>Stopp!!!</p>
<p>private:</p>
<pre><code class="language-cpp">char *var1; 
char *var2; 
char *var3; 
. 
. 
. 
char *varX;
</code></pre>
<p>Sowas willst du sicherlich nicht <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>
<p>Ich dachte an etwas wie:</p>
<pre><code class="language-cpp">class Eintrag{
};

class ListenElement{

private:
        ListenElement* next;
        Eintrag* value;
};

class Liste{
public:
        void insert(Eintrag* entry){}

private:
        ListenElement* first;
        ListenElement* last;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2019646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019646</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 13:31:48 GMT]]></title><description><![CDATA[<p>Hmm, ich kann deiner Lösung leider nicht wirklich folgen...<br />
Im Prinzip will ich schon sowas wie oben.</p>
<p>Denn ein Datensatz aus der Datei kann bis zu 13 verschiedene Einträge/Daten haben die alle einzeln in einem Objekt gespeichert werden müssen.<br />
Also ein Objekt hat immer mindestens 3 dieser Daten und maximal alle 13. Die ausgelesenen Daten müssen dann später in einer bestimmten Reihenfolge wieder in die neue Datei geschrieben werden. Deshalb ist es auch wichtig das sie alle einzeln gespeichert werden.</p>
<p>In der Ausgangsdatei steht zB folgender Datensatz:</p>
<p>Name: Klaus Müller<br />
Geb: 20.11.1980<br />
Adresse: Feldweg 1<br />
Stadt: Landsberg<br />
Beruf: Kaufmann</p>
<p>in der neuen Datei soll das dann aber zB so aussehen (auch wenns grade unlogisch wirkt, soll nur veranschaulichen was ich will):</p>
<p>D00: Kaufmann<br />
D01: Feldweg 1<br />
D02: 20.11.1980<br />
D03: Landsberg<br />
D04: Klaus Müller</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019652</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:31:48 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 14:14:02 GMT]]></title><description><![CDATA[<p>Also die verkettete Liste sollte die einzelnen Datensätze enthalten...<br />
Die Klasse Element dann die 3-13 Daten eines Datensatzes.</p>
<p>Deine vielen Variablen sahen nur etwas verwirrend aus und ich dachte<br />
du machst Mist...<br />
Wenn du viele durchnummerierte Variablen des gleichen Typs hast, sollte man sie<br />
durch ein Array oder vector ersetzen.</p>
<p>Gruß,<br />
XSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019667</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Fri, 11 Feb 2011 14:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 15:55:43 GMT]]></title><description><![CDATA[<p>Ah okay. Du würdest also nich alles in eine Klasse packen, sondern verschiedene anlegen?</p>
<p>Wegen den Arrays: Jede Variable kann nur ein Mal pro Datensatz vorkommen. Daher brauch ich eigentlich keien Arrays...</p>
<p>Aber mein Hauptproblem war ja eigentlich, dass ich gar nicht wirklich weiß wie ich die verkettete Liste implementiere? (siehe Ausgangspost)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019747</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Fri, 11 Feb 2011 15:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 16:36:55 GMT]]></title><description><![CDATA[<p>Alex Gir schrieb:</p>
<blockquote>
<p>Aber mein Hauptproblem war ja eigentlich, dass ich gar nicht wirklich weiß wie ich die verkettete Liste implementiere? (siehe Ausgangspost)</p>
</blockquote>
<p>Dann schau dir nochmal mein 1. Posting ('grafische' Visualisiserung - hier siehst<br />
du wie di Klassen miteinander verknüpft sind) und mein 2. Posting<br />
(Klassengrundgerüst) an.</p>
<p>Ich möchte jetzt aber auch nicht zuviel sagen, sonst lernst du nichts mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019771</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Fri, 11 Feb 2011 16:36:55 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Fri, 11 Feb 2011 16:54:06 GMT]]></title><description><![CDATA[<p>Ich steige da wirklich nicht durch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Ich kenne das mit den verketteten Listen nur so, dass man innerhalb der Klasse deren Objekte man quais miteinander verketten will noch ein Objekt der gleichen Klasse anlegt. Du machst das ja irgendwie komplett anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019781</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Fri, 11 Feb 2011 16:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Sat, 12 Feb 2011 11:30:39 GMT]]></title><description><![CDATA[<p>XSpille schrieb:</p>
<blockquote>
<p>Stopp!!!</p>
<p>private:</p>
<pre><code class="language-cpp">char *var1; 
char *var2; 
char *var3; 
. 
. 
. 
char *varX;
</code></pre>
<p>Sowas willst du sicherlich nicht <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>
<p>Ich dachte an etwas wie:</p>
<pre><code class="language-cpp">class Eintrag{
};

class ListenElement{

private:
        ListenElement* next;
        Eintrag* value;
};

class Liste{
public:
        void insert(Eintrag* entry){}

private:
        ListenElement* first;
        ListenElement* last;
};
</code></pre>
</blockquote>
<p>Okay, nach einigen Stunden Lektüre steige ich jetzt etwas mehr durch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Kann ich denn die Methode zur &quot;Befüllung&quot; der Variablen so lassen wie sie ist, außer das ich an ner bestimmten stelle sage &quot;void insert(Eintrag* entry){}&quot; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020004</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Sat, 12 Feb 2011 11:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Mon, 14 Feb 2011 12:23:05 GMT]]></title><description><![CDATA[<p>Hmm <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020771</guid><dc:creator><![CDATA[Alex Gir]]></dc:creator><pubDate>Mon, 14 Feb 2011 12:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datensätze aus Textdatei lesen -&amp;gt; verkettete Liste on Mon, 14 Feb 2011 12:51:49 GMT]]></title><description><![CDATA[<p>Alex Gir schrieb:</p>
<blockquote>
<p>Hmm <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /></p>
</blockquote>
<p>Das sollte vermutlich heissen: Warum antwortet keiner mehr? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Gründe dafür könnten sein:</p>
<ul>
<li>Dir fehlen ganz offensichtlich absolute Grundkenntnisse</li>
<li>Du möchtest trotzdem eine verkettete Liste selber implementieren</li>
<li>Du scheinst selber nicht genau zu wissen, was du eigentlich machen möchtest</li>
</ul>
<p>Warum benutzt du nicht einfach einen Container der STL?<br />
Du hast in ClBibdaten 13 Variablen vom Typ char* und 13 Methoden printvarX.<br />
Ein Datensatz besteht also scheinbar aus 13 zeichenketten-literalen.<br />
Einfacher wäre es also wiederum einen Container der STL zu benutzen der strings aufnimmt oder? Beispielsweise einen vector, und über den Index kannst du dann auf die einzelnen Daten des Datensatzes zugreifen.</p>
<p>Gut - ein Datensatz würde nun also durch ein Objekt des Typs ClBibdaten reprässentiert, und dieses enthält einen vector der die einzelnen Daten hält.</p>
<p>Dann nimmst du dir noch eine std::list&lt;ClBibdaten&gt; und packst alles da rein - und fertig ist die Liste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020782</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Mon, 14 Feb 2011 12:51:49 GMT</pubDate></item></channel></rss>