<?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[zeilen auslesen und löschen in einer txt]]></title><description><![CDATA[<p>Moin,</p>
<p>ich hole mal etwas aus, damit man es etwas besser versteht.<br />
Und zwar soll ich ein Programm schreiben welches ich durch ein simples Menü durch Buchstabeneingabe bedienen kann.<br />
Das sieht beispielsweise so aus:</p>
<pre><code>cout&lt;&lt;&quot;\n*******Dateiverwaltung*******&quot;;
        cout&lt;&lt;&quot;\nKundendaten ................k&quot;;
        cout&lt;&lt;&quot;\nPersonaldaten ..............p&quot;;
        cout&lt;&lt;&quot;\nEnde .......................q&quot;;
        cout&lt;&lt;&quot;\nIhre Wahl = &quot;;
</code></pre>
<p>mit switch und case wird es ausgewählt.</p>
<p>In dem Programm geht es daraus eine datei mit dem Namen &quot;kunde.txt&quot; und &quot;personal.txt&quot; anzulegen. In diese Dateien soll man dann einen Datensatz eingeben können der auch &quot;PersNr&quot;, &quot;name&quot; und &quot;vorname&quot; besteht. Dieser Eintrag wird dann in der Datei gespeichert.<br />
Ich kann auch gucken ob ein Eintrag in der Datei vorhanden ist und die gesamte Datei ausgeben lassen.<br />
Folgendes habe ich definiert:<br />
class CPerson -&gt; Basisklasse CPerson<br />
class CPersonal:public CPerson -&gt; abgeleitete Klasse CPerson<br />
class CKunde : public CPerson -&gt; abgeleitete Klasse CKunde</p>
<p>void CPerson::eingeben() -&gt; Methode der Basisklasse CPerson<br />
void CPerson::ausgeben() -&gt; Methode der Basisklasse CPerson<br />
void CPerson::suchen() -&gt; Methode der Basisklasse CPerson</p>
<p>CPersonal::CPersonal() -&gt; Methode der abgeleiteten Klasse CPersonal<br />
void CPersonal::eingeben() -&gt; Methode der abgeleiteten Klasse CPersonal<br />
void CPersonal::speichern() -&gt; Methode der abgeleiteten Klasse CPersonal</p>
<p>CKunde:CKunde -&gt; Methode der abgeleiteten Klasse CKunde<br />
void CKunde::eingeben() -&gt; Methode der abgeleiteten Klasse CKunde<br />
void CKunde::speichern() -&gt; Methode der abgeleiteten Klasse CKunde</p>
<p>Danach kommt dann das MEnü mit der Auswahl bzw dem Aufruf der einzelnen Klassen.</p>
<p>So jetzt kommt der Auszug aus meinem Programm:</p>
<p>Methoden der Basisklasse CPerson:</p>
<pre><code>void CPerson::eingeben()
{
        cout&lt;&lt;&quot;Vorname = &quot;;
        cin&gt;&gt;Vorname;
        cout&lt;&lt;&quot;Nachname = &quot;;
        cin&gt;&gt;Nachname;
}

void CPerson::ausgeben()
{
        char zeichen;
        ifstream datei;
        //system(&quot;clear&quot;);
        datei.open(Dateiname);
        if(!datei)
                cout&lt;&lt;&quot;Fehler&quot;;
        else
        {
                cout&lt;&lt;&quot;Personaldatei\n&quot;;
                while(!datei.eof())
                {
                        zeichen=datei.get();
                        if(zeichen=='#')
                                cout&lt;&lt;endl;
                        else
                                cout.put(zeichen);
                }
                datei.close();
        }
        //getch();
}

void CPerson::suchen()
{
        char suchname[30],zeichenkette[30];
        int i=0;
        bool vorhanden=false;
        ifstream datei;
        cout&lt;&lt;&quot;Suchname = &quot;;
        cin&gt;&gt;suchname;
        datei.open(Dateiname);
        while(!datei.eof())
        {
                zeichenkette[i]=datei.get();
                if (zeichenkette[i]!=' ')
                        i++;
                else
                {
                        zeichenkette[i]='\0';
                        if(strcmp(zeichenkette,suchname)==0)
                                vorhanden=true;
                        i=0;
                }
        }
        datei.close();
        if(vorhanden==true)
                cout&lt;&lt;endl&lt;&lt;suchname&lt;&lt;&quot; ist in der Datei vorhanden&quot;&lt;&lt;endl;
        else
                cout&lt;&lt;endl&lt;&lt;suchname&lt;&lt;&quot; ist in der nicht Datei vorhanden&quot;&lt;&lt;endl;
        //getch();
}
</code></pre>
<p>Methoden der abgeleiteten Klasse CPersonal</p>
<pre><code>CPersonal::CPersonal()
{
        strcpy(Dateiname,&quot;personal.txt&quot;);
}

void CPersonal::eingeben()
{
        cout&lt;&lt;&quot;Personaldaten \n&quot;;
        CPerson::eingeben();
        cout&lt;&lt;&quot;Personalnummer = &quot;;
        cin&gt;&gt;PersNr;
        CPersonal::speichern();
}

void CPersonal::speichern()
{
        ofstream datei;
        datei.open(Dateiname,ios::app);
        if(!datei)
                cout&lt;&lt;&quot;\nDatei kann nicht geoeffnet werden&quot;;
        else
                datei&lt;&lt; PersNr &lt;&lt;&quot; &quot;&lt;&lt;Vorname&lt;&lt;&quot; &quot;&lt;&lt;Nachname&lt;&lt;&quot; # &quot; &lt;&lt; endl;
        datei.close();
}
</code></pre>
<p>So hoffe ist nachvollziehbar.<br />
Nun soll das Programm aber noch mehr können als die gesamte Datei ausgeben, neue Einträge anhängen und gucken ob ein bestimmter Eintrag vorhanden ist.</p>
<p>Die Dateien die angelegt wurden sollen sortiert werden, man soll einzelne Zeilen bzw Einträge darauf löschen können und einzelne Einträge ändern können.</p>
<p>Ich habe aber absolut keine Ahnung wie ich das machen soll. Den ersten Teil hatten wir in der Schule zusammen gemacht und der Rest sollte alleine erledigt werden.</p>
<p>Vielleicht kann mir ja jemand helfen oder hat Ideen dazu.<br />
Wäre prima.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/126532/zeilen-auslesen-und-löschen-in-einer-txt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 18:57:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/126532.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Nov 2005 08:34:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zeilen auslesen und löschen in einer txt on Thu, 17 Nov 2005 06:11:29 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ich hole mal etwas aus, damit man es etwas besser versteht.<br />
Und zwar soll ich ein Programm schreiben welches ich durch ein simples Menü durch Buchstabeneingabe bedienen kann.<br />
Das sieht beispielsweise so aus:</p>
<pre><code>cout&lt;&lt;&quot;\n*******Dateiverwaltung*******&quot;;
        cout&lt;&lt;&quot;\nKundendaten ................k&quot;;
        cout&lt;&lt;&quot;\nPersonaldaten ..............p&quot;;
        cout&lt;&lt;&quot;\nEnde .......................q&quot;;
        cout&lt;&lt;&quot;\nIhre Wahl = &quot;;
</code></pre>
<p>mit switch und case wird es ausgewählt.</p>
<p>In dem Programm geht es daraus eine datei mit dem Namen &quot;kunde.txt&quot; und &quot;personal.txt&quot; anzulegen. In diese Dateien soll man dann einen Datensatz eingeben können der auch &quot;PersNr&quot;, &quot;name&quot; und &quot;vorname&quot; besteht. Dieser Eintrag wird dann in der Datei gespeichert.<br />
Ich kann auch gucken ob ein Eintrag in der Datei vorhanden ist und die gesamte Datei ausgeben lassen.<br />
Folgendes habe ich definiert:<br />
class CPerson -&gt; Basisklasse CPerson<br />
class CPersonal:public CPerson -&gt; abgeleitete Klasse CPerson<br />
class CKunde : public CPerson -&gt; abgeleitete Klasse CKunde</p>
<p>void CPerson::eingeben() -&gt; Methode der Basisklasse CPerson<br />
void CPerson::ausgeben() -&gt; Methode der Basisklasse CPerson<br />
void CPerson::suchen() -&gt; Methode der Basisklasse CPerson</p>
<p>CPersonal::CPersonal() -&gt; Methode der abgeleiteten Klasse CPersonal<br />
void CPersonal::eingeben() -&gt; Methode der abgeleiteten Klasse CPersonal<br />
void CPersonal::speichern() -&gt; Methode der abgeleiteten Klasse CPersonal</p>
<p>CKunde:CKunde -&gt; Methode der abgeleiteten Klasse CKunde<br />
void CKunde::eingeben() -&gt; Methode der abgeleiteten Klasse CKunde<br />
void CKunde::speichern() -&gt; Methode der abgeleiteten Klasse CKunde</p>
<p>Danach kommt dann das MEnü mit der Auswahl bzw dem Aufruf der einzelnen Klassen.</p>
<p>So jetzt kommt der Auszug aus meinem Programm:</p>
<p>Methoden der Basisklasse CPerson:</p>
<pre><code>void CPerson::eingeben()
{
        cout&lt;&lt;&quot;Vorname = &quot;;
        cin&gt;&gt;Vorname;
        cout&lt;&lt;&quot;Nachname = &quot;;
        cin&gt;&gt;Nachname;
}

void CPerson::ausgeben()
{
        char zeichen;
        ifstream datei;
        //system(&quot;clear&quot;);
        datei.open(Dateiname);
        if(!datei)
                cout&lt;&lt;&quot;Fehler&quot;;
        else
        {
                cout&lt;&lt;&quot;Personaldatei\n&quot;;
                while(!datei.eof())
                {
                        zeichen=datei.get();
                        if(zeichen=='#')
                                cout&lt;&lt;endl;
                        else
                                cout.put(zeichen);
                }
                datei.close();
        }
        //getch();
}

void CPerson::suchen()
{
        char suchname[30],zeichenkette[30];
        int i=0;
        bool vorhanden=false;
        ifstream datei;
        cout&lt;&lt;&quot;Suchname = &quot;;
        cin&gt;&gt;suchname;
        datei.open(Dateiname);
        while(!datei.eof())
        {
                zeichenkette[i]=datei.get();
                if (zeichenkette[i]!=' ')
                        i++;
                else
                {
                        zeichenkette[i]='\0';
                        if(strcmp(zeichenkette,suchname)==0)
                                vorhanden=true;
                        i=0;
                }
        }
        datei.close();
        if(vorhanden==true)
                cout&lt;&lt;endl&lt;&lt;suchname&lt;&lt;&quot; ist in der Datei vorhanden&quot;&lt;&lt;endl;
        else
                cout&lt;&lt;endl&lt;&lt;suchname&lt;&lt;&quot; ist in der nicht Datei vorhanden&quot;&lt;&lt;endl;
        //getch();
}
</code></pre>
<p>Methoden der abgeleiteten Klasse CPersonal</p>
<pre><code>CPersonal::CPersonal()
{
        strcpy(Dateiname,&quot;personal.txt&quot;);
}

void CPersonal::eingeben()
{
        cout&lt;&lt;&quot;Personaldaten \n&quot;;
        CPerson::eingeben();
        cout&lt;&lt;&quot;Personalnummer = &quot;;
        cin&gt;&gt;PersNr;
        CPersonal::speichern();
}

void CPersonal::speichern()
{
        ofstream datei;
        datei.open(Dateiname,ios::app);
        if(!datei)
                cout&lt;&lt;&quot;\nDatei kann nicht geoeffnet werden&quot;;
        else
                datei&lt;&lt; PersNr &lt;&lt;&quot; &quot;&lt;&lt;Vorname&lt;&lt;&quot; &quot;&lt;&lt;Nachname&lt;&lt;&quot; # &quot; &lt;&lt; endl;
        datei.close();
}
</code></pre>
<p>So hoffe ist nachvollziehbar.<br />
Nun soll das Programm aber noch mehr können als die gesamte Datei ausgeben, neue Einträge anhängen und gucken ob ein bestimmter Eintrag vorhanden ist.</p>
<p>Die Dateien die angelegt wurden sollen sortiert werden, man soll einzelne Zeilen bzw Einträge darauf löschen können und einzelne Einträge ändern können.</p>
<p>Ich habe aber absolut keine Ahnung wie ich das machen soll. Den ersten Teil hatten wir in der Schule zusammen gemacht und der Rest sollte alleine erledigt werden.</p>
<p>Vielleicht kann mir ja jemand helfen oder hat Ideen dazu.<br />
Wäre prima.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/918864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/918864</guid><dc:creator><![CDATA[Jes]]></dc:creator><pubDate>Thu, 17 Nov 2005 06:11:29 GMT</pubDate></item><item><title><![CDATA[Reply to zeilen auslesen und löschen in einer txt on Thu, 17 Nov 2005 06:11:52 GMT]]></title><description><![CDATA[<p>Kann mir denn wirklich niemand helfen???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/919670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/919670</guid><dc:creator><![CDATA[Jes]]></dc:creator><pubDate>Thu, 17 Nov 2005 06:11:52 GMT</pubDate></item></channel></rss>