<?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[Datenbank System C++]]></title><description><![CDATA[<p>Hallo liebe Community,<br />
ich bin irgendwie am Ende meines Lateins.. wir sollen für ein Schulisches Projekt ein Datenbank Programm entwerfen (Es geht hier nicht darum wie logisch das ist oder so ^^) Nun Dieses Projekt ist von mir fast vollendet... doch ich habe zweierlei Probleme... die Suche funktioniert nicht und ich habe keine Ahnung wie man ein Datensatz löschen soll... für Verbesserungsvorschläge bin ich auch glüklich <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 poste hier mal den Quellcode...</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;iomanip.h&gt;
//#include &lt;process.h&gt;

struct Satz
{
  // int ID;
   char Name[15];
   char Vorname[10];
   char Mail[25];
} Name;

void Ende(void);
void Neu(void);
void Waehlen(void);
void Ausgabe(void);
void Append(void);
void loeschen(void);
void Suchen(void);
void main2(void);
long filesize(FILE *stream);

bool running = false;
bool start=true;
FILE *Liste;
int i=0;
char Datei[20];
char weiter='j';

int main()
{

                char Wahl;

        while(start)
        {
         clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;
cout&lt;&lt;&quot;³  D A T E I M E N \x9A     ³\n&quot;;
cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;

        cout &lt;&lt; &quot;1. Neue Datei anlegen\n&quot;;
        cout &lt;&lt; &quot;2. Datei w\x84hlen\n&quot;;
        cout &lt;&lt; &quot;3. Datei l\x94schen\n&quot;;
        cout &lt;&lt; &quot;0. Programm Ende\n&quot;;
        Wahl = getch();

			 switch (Wahl)
			{

                                case '0':
				{
				   Ende();

				}break;

                                case '1':
                                {
                                   Neu();
                                }break;

				case '2':
				{
				    Waehlen();

				}break;

                                case '3':
				{
                                    loeschen();

				}break;

                                case '4':
                                {
                                   loeschen();
                                }break;

						default:
                                                clrscr();
                                                cout&lt;&lt; &quot;Fehlerhafte Eingabe!&quot;;
                                                Sleep(1000);

			}

}

         getch();
        return 0;
}
//------------------------------------------------------------------------------
void Ende()
{

  running = false;                                              //booltypen für die switch-anweisungen werden auf false gesetzt
  start=false;
  clrscr();
  cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;                               //Rahmen mit Überschrift
  cout&lt;&lt;&quot;³     E N D E      ³\n&quot;;
  cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;

  cout&lt;&lt;&quot;Programm wird beendet....&quot;&lt;&lt;endl;
  Sleep(1000);                                                  //cout wird für 1s angezeigt
  exit(0);                                                      // Programm wird beendet

}

void Neu()
{
clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;                               //Rahmen mit Überschrift
    &lt;&lt;&quot;³     N E U E  D A T E I    ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;
    &lt;&lt;&quot;Bitte geben Sie den Dateinamen(mit Endung) ein: &quot;;
cin&gt;&gt;Datei;                                                       //Name für neue Datei wird ein eingelesen
cout&lt;&lt;&quot;Die Datei &quot;&lt;&lt;Datei&lt;&lt;&quot; wird erstellt&quot;;
Sleep(1000);

start=false;
running=true;                                                       //Das zweite Menü wird aktiviert
main2();
}

void Waehlen()
{
  clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;                               //Rahmen mit Überschrift
cout&lt;&lt;&quot;³     D A T E I  W \x8E H L E N    ³\n&quot;;
cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
  cout &lt;&lt; &quot;Welche Datei wollen sie oeffnen?(Mit Endung)&quot;;
  cin&gt;&gt;Datei;
        Liste=fopen(Datei,&quot;r&quot;);
        if(Liste==NULL)
        {
          cout&lt;&lt;&quot;Fehler beim Anlegen der Datei !\n&quot;;
          cout&lt;&lt;&quot;Bitte erstellen Sie im Hauptmen\x81 eine neue Datei!\n&quot;;
          Sleep(2000);
        }
        else
        {
        cout&lt;&lt;&quot;Datei gefunden!&quot;;
        Sleep(1000);
        start=false;
        running=true;
        main2();
        }
}

void loeschen()
 {

 clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;                               //Rahmen mit Überschrift
    &lt;&lt;&quot;³     D A T E I  L \x99 S C H E N    ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
fclose(Liste);
char befehl[50];
cout&lt;&lt;&quot;Welche Datei wollen Sie l\x94schen\n&quot;;
gets(Datei);
strcpy(befehl, &quot;del &quot;);
strcat(befehl, Datei);
system(befehl);
cout&lt;&lt;&quot;Die Datei &quot;&lt;&lt;Datei&lt;&lt;&quot; wurde gel\x94scht!&quot;&lt;&lt;endl;
Sleep(3000);

 }

void Ausgabe()
{                                                                        clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;                               //Rahmen mit Überschrift
    &lt;&lt;&quot;³     D A T E N  A U S G E B E N    ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
fflush(stdin);
fclose(Liste);
 i=0;
Liste= fopen(Datei,&quot;r+b&quot;);
cout&lt;&lt;&quot;Vorname\t\tNachname\t\tE-Mail&quot;&lt;&lt;endl;
for(i;(filesize(Liste)/sizeof(Satz))&gt;i;i++)                             //solange die Anzahl von Datensätzen&gt;i ist
        {

                fread(&amp;Name,sizeof(Name),1,Liste); //falls Datei doch vorhanden, auslesen
                cout&lt;&lt;setw(10)&lt;&lt;Name.Vorname&lt;&lt;&quot;   ³&quot;
                    &lt;&lt;setw(15)&lt;&lt;Name.Name&lt;&lt;&quot;  ³&quot;
                    &lt;&lt;setw(25)&lt;&lt;Name.Mail&lt;&lt;endl;

        }

        cout&lt;&lt;&quot;\nDatei gelesen..&quot;;
        cout&lt;&lt;i&lt;&lt;&quot; Element(e) vorhanden&quot;;

getch();
}

 void Append()
 {
 clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;                               //Rahmen mit Überschrift
cout&lt;&lt;&quot;³     D A T E N  E I N G E B E N    ³\n&quot;;
cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
 fflush(stdin);
 fclose(Liste);
          Liste=fopen(Datei,&quot;ab&quot;);    // Öffnen der Binärdatei zum Schreiben

        while(weiter=='j')   // Wenn noch nichts drin, etwas reinschreiben:
        {
        cout&lt;&lt;&quot;\nVorname: &quot;; gets(Name.Vorname);
        cout&lt;&lt;&quot;\Nachname: &quot;;  gets(Name.Name);
        cout&lt;&lt;&quot;E-Mail: &quot;;   gets(Name.Mail);
        cout&lt;&lt;&quot;Noch einen (j/n)?\n&quot;; weiter=getch(); i++;
        fwrite(&amp;Name,sizeof(Satz),1,Liste);  // am Schluss wegschreiben
        cout&lt;&lt;Name.Vorname&lt;&lt;&quot; &quot;&lt;&lt;Name.Name&lt;&lt;&quot; E-Mail.: &quot;&lt;&lt;Name.Mail&lt;&lt;endl;
        }
        weiter='j';

}

void Suchen()
{
char Wahl3;
fflush(stdin);
fclose(Liste);
clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;
    &lt;&lt;&quot;³     D A T E N  S U C H E N       ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;

/*cout&lt;&lt;&quot;1. Nach Vornamen suchen\n&quot;
    &lt;&lt;&quot;2. Nach Nachnamen suchen\n&quot;
    &lt;&lt;&quot;3. Nach E-Mail suchen\n&quot;
    &lt;&lt;&quot;4. Nach Datensatznummer suchen\n&quot;;
    Wahl3=getch();    */

Liste=fopen(Datei,&quot;r+b&quot;);

                                while(weiter=='j')                                                                              // Jetzt bestimmte Daten holen
                                 {
                                cout&lt;&lt;&quot;\nWelchen Eintrag wollen Sie sehen? Nummer (1-&quot; &lt;&lt;filesize(Liste)/sizeof(Satz)&lt;&lt;&quot;): &quot;;      // ermittelt Zahl der Daten
                                cin &gt;&gt; i;
                                fseek(Liste,sizeof(Satz)*(i-1),SEEK_SET);                                         // richtige Stelle suchen
                                fread(&amp;Name,sizeof(Satz),1,Liste);                                                // Struktur 1x lesen
                                cout&lt;&lt;Name.Vorname&lt;&lt;&quot; &quot;&lt;&lt;Name.Name&lt;&lt;&quot; E-Mail: &quot;&lt;&lt;Name.Mail&lt;&lt;endl;
                                cout&lt;&lt;&quot;Datensatz neu schreiben (j/n)?&quot;; weiter=getch(); fflush(stdin);
                                if(weiter=='j')
                                {
                                        cout&lt;&lt;&quot;\nVorname: &quot;; gets(Name.Vorname);
                                        cout&lt;&lt;&quot;Nachname: &quot;;  gets(Name.Name);
                                        cout&lt;&lt;&quot;E-Mail: &quot;;   gets(Name.Mail);
                                        fseek(Liste,sizeof(Satz)*(i-1),SEEK_SET);
                                        fwrite(&amp;Name,sizeof(Satz),1,Liste);
                                }
                                cout&lt;&lt;&quot;\nNoch einen (j/n)?&quot;; weiter=getch();
                                }

}

long filesize(FILE *stream)                             // findet die Länge der Datei in Byte heraus
{
   long curpos, length;
   curpos = ftell(stream);
   fseek(stream, 0L, SEEK_END);
   length = ftell(stream);
   fseek(stream, curpos, SEEK_SET);
   return length;
}

void main2()
{

                char Wahl2;

        while(running)
        {
         clrscr();
        cout &lt;&lt; &quot;1. Datens\x84tze sortiert tabellarisch ausgeben \n&quot;;
        cout &lt;&lt; &quot;2. Datensatz anh\x84ngen\n&quot;;
        cout &lt;&lt; &quot;3. Datenfeldinhalt suchen und \x84ndern\n&quot;;
        cout &lt;&lt; &quot;4. Zurueck zum Dateimen\x81\n&quot;;
        cout &lt;&lt; &quot;0. Programm Ende\n&quot;;
        Wahl2 = getch();

			 switch (Wahl2)
			{

                                case '0':
				{
				   Ende();

				}break;

                                case '1':
                                {
                                   Ausgabe();
                                }break;

				case '2':
				{
				    Append();

				}break;

                                case '3':
                                {
                                   Suchen();
                                }break;

                                case '4':
                                {
                                running = false;
                                start=true;
                                }break;

						default:
                                                clrscr();
                                                cout&lt;&lt; &quot;Fehlerhafte Eingabe!&quot;;
                                                Sleep(1000);

			}

}

         getch();
}
</code></pre>
<p>Mein Wunsch wäre nun ob jmd mir helfen würde bei der Search Funktion und der Delete funktion.. vorallem bei der Delete <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/topic/288720/datenbank-system-c</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 18:19:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288720.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Jun 2011 16:38:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 16:38:31 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,<br />
ich bin irgendwie am Ende meines Lateins.. wir sollen für ein Schulisches Projekt ein Datenbank Programm entwerfen (Es geht hier nicht darum wie logisch das ist oder so ^^) Nun Dieses Projekt ist von mir fast vollendet... doch ich habe zweierlei Probleme... die Suche funktioniert nicht und ich habe keine Ahnung wie man ein Datensatz löschen soll... für Verbesserungsvorschläge bin ich auch glüklich <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 poste hier mal den Quellcode...</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;iomanip.h&gt;
//#include &lt;process.h&gt;

struct Satz
{
  // int ID;
   char Name[15];
   char Vorname[10];
   char Mail[25];
} Name;

void Ende(void);
void Neu(void);
void Waehlen(void);
void Ausgabe(void);
void Append(void);
void loeschen(void);
void Suchen(void);
void main2(void);
long filesize(FILE *stream);

bool running = false;
bool start=true;
FILE *Liste;
int i=0;
char Datei[20];
char weiter='j';

int main()
{

                char Wahl;

        while(start)
        {
         clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;
cout&lt;&lt;&quot;³  D A T E I M E N \x9A     ³\n&quot;;
cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;

        cout &lt;&lt; &quot;1. Neue Datei anlegen\n&quot;;
        cout &lt;&lt; &quot;2. Datei w\x84hlen\n&quot;;
        cout &lt;&lt; &quot;3. Datei l\x94schen\n&quot;;
        cout &lt;&lt; &quot;0. Programm Ende\n&quot;;
        Wahl = getch();

			 switch (Wahl)
			{

                                case '0':
				{
				   Ende();

				}break;

                                case '1':
                                {
                                   Neu();
                                }break;

				case '2':
				{
				    Waehlen();

				}break;

                                case '3':
				{
                                    loeschen();

				}break;

                                case '4':
                                {
                                   loeschen();
                                }break;

						default:
                                                clrscr();
                                                cout&lt;&lt; &quot;Fehlerhafte Eingabe!&quot;;
                                                Sleep(1000);

			}

}

         getch();
        return 0;
}
//------------------------------------------------------------------------------
void Ende()
{

  running = false;                                              //booltypen für die switch-anweisungen werden auf false gesetzt
  start=false;
  clrscr();
  cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;                               //Rahmen mit Überschrift
  cout&lt;&lt;&quot;³     E N D E      ³\n&quot;;
  cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;

  cout&lt;&lt;&quot;Programm wird beendet....&quot;&lt;&lt;endl;
  Sleep(1000);                                                  //cout wird für 1s angezeigt
  exit(0);                                                      // Programm wird beendet

}

void Neu()
{
clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;                               //Rahmen mit Überschrift
    &lt;&lt;&quot;³     N E U E  D A T E I    ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;
    &lt;&lt;&quot;Bitte geben Sie den Dateinamen(mit Endung) ein: &quot;;
cin&gt;&gt;Datei;                                                       //Name für neue Datei wird ein eingelesen
cout&lt;&lt;&quot;Die Datei &quot;&lt;&lt;Datei&lt;&lt;&quot; wird erstellt&quot;;
Sleep(1000);

start=false;
running=true;                                                       //Das zweite Menü wird aktiviert
main2();
}

void Waehlen()
{
  clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;                               //Rahmen mit Überschrift
cout&lt;&lt;&quot;³     D A T E I  W \x8E H L E N    ³\n&quot;;
cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
  cout &lt;&lt; &quot;Welche Datei wollen sie oeffnen?(Mit Endung)&quot;;
  cin&gt;&gt;Datei;
        Liste=fopen(Datei,&quot;r&quot;);
        if(Liste==NULL)
        {
          cout&lt;&lt;&quot;Fehler beim Anlegen der Datei !\n&quot;;
          cout&lt;&lt;&quot;Bitte erstellen Sie im Hauptmen\x81 eine neue Datei!\n&quot;;
          Sleep(2000);
        }
        else
        {
        cout&lt;&lt;&quot;Datei gefunden!&quot;;
        Sleep(1000);
        start=false;
        running=true;
        main2();
        }
}

void loeschen()
 {

 clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;                               //Rahmen mit Überschrift
    &lt;&lt;&quot;³     D A T E I  L \x99 S C H E N    ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
fclose(Liste);
char befehl[50];
cout&lt;&lt;&quot;Welche Datei wollen Sie l\x94schen\n&quot;;
gets(Datei);
strcpy(befehl, &quot;del &quot;);
strcat(befehl, Datei);
system(befehl);
cout&lt;&lt;&quot;Die Datei &quot;&lt;&lt;Datei&lt;&lt;&quot; wurde gel\x94scht!&quot;&lt;&lt;endl;
Sleep(3000);

 }

void Ausgabe()
{                                                                        clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;                               //Rahmen mit Überschrift
    &lt;&lt;&quot;³     D A T E N  A U S G E B E N    ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
fflush(stdin);
fclose(Liste);
 i=0;
Liste= fopen(Datei,&quot;r+b&quot;);
cout&lt;&lt;&quot;Vorname\t\tNachname\t\tE-Mail&quot;&lt;&lt;endl;
for(i;(filesize(Liste)/sizeof(Satz))&gt;i;i++)                             //solange die Anzahl von Datensätzen&gt;i ist
        {

                fread(&amp;Name,sizeof(Name),1,Liste); //falls Datei doch vorhanden, auslesen
                cout&lt;&lt;setw(10)&lt;&lt;Name.Vorname&lt;&lt;&quot;   ³&quot;
                    &lt;&lt;setw(15)&lt;&lt;Name.Name&lt;&lt;&quot;  ³&quot;
                    &lt;&lt;setw(25)&lt;&lt;Name.Mail&lt;&lt;endl;

        }

        cout&lt;&lt;&quot;\nDatei gelesen..&quot;;
        cout&lt;&lt;i&lt;&lt;&quot; Element(e) vorhanden&quot;;

getch();
}

 void Append()
 {
 clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;;                               //Rahmen mit Überschrift
cout&lt;&lt;&quot;³     D A T E N  E I N G E B E N    ³\n&quot;;
cout&lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;
 fflush(stdin);
 fclose(Liste);
          Liste=fopen(Datei,&quot;ab&quot;);    // Öffnen der Binärdatei zum Schreiben

        while(weiter=='j')   // Wenn noch nichts drin, etwas reinschreiben:
        {
        cout&lt;&lt;&quot;\nVorname: &quot;; gets(Name.Vorname);
        cout&lt;&lt;&quot;\Nachname: &quot;;  gets(Name.Name);
        cout&lt;&lt;&quot;E-Mail: &quot;;   gets(Name.Mail);
        cout&lt;&lt;&quot;Noch einen (j/n)?\n&quot;; weiter=getch(); i++;
        fwrite(&amp;Name,sizeof(Satz),1,Liste);  // am Schluss wegschreiben
        cout&lt;&lt;Name.Vorname&lt;&lt;&quot; &quot;&lt;&lt;Name.Name&lt;&lt;&quot; E-Mail.: &quot;&lt;&lt;Name.Mail&lt;&lt;endl;
        }
        weiter='j';

}

void Suchen()
{
char Wahl3;
fflush(stdin);
fclose(Liste);
clrscr();
cout&lt;&lt;&quot;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n&quot;
    &lt;&lt;&quot;³     D A T E N  S U C H E N       ³\n&quot;
    &lt;&lt;&quot;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n&quot;;

/*cout&lt;&lt;&quot;1. Nach Vornamen suchen\n&quot;
    &lt;&lt;&quot;2. Nach Nachnamen suchen\n&quot;
    &lt;&lt;&quot;3. Nach E-Mail suchen\n&quot;
    &lt;&lt;&quot;4. Nach Datensatznummer suchen\n&quot;;
    Wahl3=getch();    */

Liste=fopen(Datei,&quot;r+b&quot;);

                                while(weiter=='j')                                                                              // Jetzt bestimmte Daten holen
                                 {
                                cout&lt;&lt;&quot;\nWelchen Eintrag wollen Sie sehen? Nummer (1-&quot; &lt;&lt;filesize(Liste)/sizeof(Satz)&lt;&lt;&quot;): &quot;;      // ermittelt Zahl der Daten
                                cin &gt;&gt; i;
                                fseek(Liste,sizeof(Satz)*(i-1),SEEK_SET);                                         // richtige Stelle suchen
                                fread(&amp;Name,sizeof(Satz),1,Liste);                                                // Struktur 1x lesen
                                cout&lt;&lt;Name.Vorname&lt;&lt;&quot; &quot;&lt;&lt;Name.Name&lt;&lt;&quot; E-Mail: &quot;&lt;&lt;Name.Mail&lt;&lt;endl;
                                cout&lt;&lt;&quot;Datensatz neu schreiben (j/n)?&quot;; weiter=getch(); fflush(stdin);
                                if(weiter=='j')
                                {
                                        cout&lt;&lt;&quot;\nVorname: &quot;; gets(Name.Vorname);
                                        cout&lt;&lt;&quot;Nachname: &quot;;  gets(Name.Name);
                                        cout&lt;&lt;&quot;E-Mail: &quot;;   gets(Name.Mail);
                                        fseek(Liste,sizeof(Satz)*(i-1),SEEK_SET);
                                        fwrite(&amp;Name,sizeof(Satz),1,Liste);
                                }
                                cout&lt;&lt;&quot;\nNoch einen (j/n)?&quot;; weiter=getch();
                                }

}

long filesize(FILE *stream)                             // findet die Länge der Datei in Byte heraus
{
   long curpos, length;
   curpos = ftell(stream);
   fseek(stream, 0L, SEEK_END);
   length = ftell(stream);
   fseek(stream, curpos, SEEK_SET);
   return length;
}

void main2()
{

                char Wahl2;

        while(running)
        {
         clrscr();
        cout &lt;&lt; &quot;1. Datens\x84tze sortiert tabellarisch ausgeben \n&quot;;
        cout &lt;&lt; &quot;2. Datensatz anh\x84ngen\n&quot;;
        cout &lt;&lt; &quot;3. Datenfeldinhalt suchen und \x84ndern\n&quot;;
        cout &lt;&lt; &quot;4. Zurueck zum Dateimen\x81\n&quot;;
        cout &lt;&lt; &quot;0. Programm Ende\n&quot;;
        Wahl2 = getch();

			 switch (Wahl2)
			{

                                case '0':
				{
				   Ende();

				}break;

                                case '1':
                                {
                                   Ausgabe();
                                }break;

				case '2':
				{
				    Append();

				}break;

                                case '3':
                                {
                                   Suchen();
                                }break;

                                case '4':
                                {
                                running = false;
                                start=true;
                                }break;

						default:
                                                clrscr();
                                                cout&lt;&lt; &quot;Fehlerhafte Eingabe!&quot;;
                                                Sleep(1000);

			}

}

         getch();
}
</code></pre>
<p>Mein Wunsch wäre nun ob jmd mir helfen würde bei der Search Funktion und der Delete funktion.. vorallem bei der Delete <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/2081767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081767</guid><dc:creator><![CDATA[paret]]></dc:creator><pubDate>Tue, 21 Jun 2011 16:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 16:57:49 GMT]]></title><description><![CDATA[<p>1. Worst indentation ever!<br />
Guck dir deinen Beitrag an und dann denk mal darüber nach, ob man das Lesen kann oder nicht.</p>
<p>2. Da ist meiner Meinung nach nichts zu retten. Das Programm sieht aus wie ein Beispiel für schlechtes Design. Verbesserungsvorschlag:<br />
- Gesamten Quelltext löschen<br />
- C <strong>oder</strong> C++ lernen (nicht beides), mit einem <strong>guten</strong> Buch, welches dir auch guten Programmierstil und gute Modellierung beibringt<br />
- Noch mal von vorne machen. Und dieses mal schreibst du das locker runter und es sieht hinterher aus wie ein Kunstwerk.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081774</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 21 Jun 2011 16:57:49 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:01:37 GMT]]></title><description><![CDATA[<p>O-ha, welchen Compiler nutzt du?<br />
Welche Vorlage steht dir zur Verfügung - Buch, Unterricht oder ...?</p>
<p>Sollte der Quelltext nicht schulische Ursachen haben, bringe den so schnell du kannst auf den aktuellen Stand.</p>
<p>Hier schon mal ein Anfang:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;     // solltest du in C++ so nicht mehr nutzen - ist C
#include &lt;stdlib.h&gt;    // solltest du in C++ so nicht mehr nutzen - ist C
#include &lt;iostream.h&gt;  // solltest du in C++ so nicht mehr nutzen - ist altes C++
#include &lt;conio.h&gt;     // auch ein C Header
#include &lt;iomanip.h&gt;   // solltest du in C++ so nicht mehr nutzen - ist altes C++

....

    clrscr();     // compilerspezifisch - das kann ohne Zusatz nur Borland

....
    Sleep(1000);  // brauch man bei Datenbanken nicht und gefällt mir nicht
                  // Sleep() gross geschrieben aus welchem Header ist das?

....
    fflush(stdin);// ist kein Standard C oder C++ - ist nur bei MS-Compilern beschrieben
</code></pre>
<p>Bist du sicher das der Quelltext so durch deinen Compiler kommt?<br />
Stringfunktionen aus C ohne Header?</p>
<p>so bis hier erst mal <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="😃"
    /></p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081777</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:01:37 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:07:02 GMT]]></title><description><![CDATA[<blockquote>
<p>Sleep() gross geschrieben aus welchem Header ist das?</p>
</blockquote>
<p>Kommt typischerweise aus windows.h</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081780</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:07:02 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:11:28 GMT]]></title><description><![CDATA[<p>@f.-th. : conio.h ist kein C sondern eine MS-DOS Konsolenbibliothek. Aus der kommen auch mWn viele von den Funktionen die du im weiteren Verlauf angekreidet hast. Es ist aber völlig legitim die conio.h zu nutzen, wenn die Zielplattform eine DOS-Konsole ist. Und im Prinzip ist es dann auch ok, Sachen wie fflush(stdin) zu benutzen, da man die Plattformunabhängigkeit an der Stelle schon lange aufgegeben hat.</p>
<p>edit: Sehe ich das richtig? Das sleep wird benutzt, um dem Benutzer vorzugaukeln, dass im Hintergrund ordentlich gerechnet wird? Wie süß <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/2081782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081782</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:11:28 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:08:40 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Sleep(1000);  // brauch man bei Datenbanken nicht und gefällt mir nicht
                  // Sleep() gross geschrieben aus welchem Header ist das?
</code></pre>
</blockquote>
<p>Sleep ist eine Windows-Funktion und lässt sich durch einbinden der <code>Windows.h</code> nutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081783</guid><dc:creator><![CDATA[ghjghj]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:08:40 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:14:35 GMT]]></title><description><![CDATA[<p>Mein Wissen hat rein schulische Ursachen..... <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="😉"
    /> und ich benutze den Borland Builder 6 womit ich auch durchkommen... <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>Und mit dem Neuschreiben habe ich dann so Problem.. muss das Freitag abgeben und habe schon lang genug dran rumgetippt....</p>
<p>Und ja.. das Sleep ist eher eine Show.. ich meine da kommen vielleicht 8-10 Strukturen rein... insofern ist die effektivität eher nebensächlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081785</guid><dc:creator><![CDATA[paret]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:14:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:17:19 GMT]]></title><description><![CDATA[<p>Da kann man nur noch den Kopf schütteln, wenn man sieht wie und was an den Schulen unterrichtet wird. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081792</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:21:28 GMT]]></title><description><![CDATA[<p>Um jetzt mal die Schule in schutz zu nehmen.. ich habe mich ne Zeitlang mit c++ beschäftigt und in der Schule machen wir nen Mischmasch.. daraus ergibt sich dann ein Supermischmasch von Befehlen....</p>
<p>Wie gesagt der Schreibstiel tut mir leid aber besser kann ich es nicht.. und ich lerne erst seit 3 Monaten C++... und das rein schulisch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081794</guid><dc:creator><![CDATA[paret]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:20:35 GMT]]></title><description><![CDATA[<p>paret schrieb:</p>
<blockquote>
<p>Um jetzt mal die Schule in schutz zu nehmen.. ich habe mich ne Zeitlang mit c++ beschäftigt und in der Schule machen wir nen Mischmasch.. daraus ergibt sich dann ein Supermischmasch von Befehlen....</p>
<p>Wie gesagt der Schreibstiel tut mir leid aber besser kann ich es nicht.. und ich lerne erst seid 3 Monaten C++... und das rein schulisch</p>
</blockquote>
<p>Inwiefern nimmst Du da die Schule in Schutz? Gar nicht, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081795</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:20:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 17:41:51 GMT]]></title><description><![CDATA[<p>Wenn ich</p>
<pre><code class="language-cpp">Sleep(100);
</code></pre>
<p>im Quelltext sehe und es wird behauptet, der Quelltext läuft ohne</p>
<pre><code class="language-cpp">#include&lt;windows.h&gt;
</code></pre>
<p>sollen wir das glauben?</p>
<p>Wenn ich mich recht erinnere kennt Borland</p>
<pre><code class="language-cpp">sleep(100);  // hier klein geschrieben - ob die Auflösung wie Sleep() war ?
</code></pre>
<p>schon seit Anfang der 90er.</p>
<p>Wenn das der Builder so übersetzt, ist der Quelltext auf jeden Fall compilerspezifisch.</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081802</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Tue, 21 Jun 2011 17:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Tue, 21 Jun 2011 18:13:52 GMT]]></title><description><![CDATA[<p>Okay, der conio.h ist der Header für die DOS-Konsolenbibliothek.</p>
<p>Wenn ihr Borland habt, ist</p>
<pre><code class="language-cpp">clrscr();
</code></pre>
<p>dabei. Sonst gibt es das nur selbst erstellt oder per externem Quelltext. Bei einigen Compilern ist eine vergleichbare Funktion auch unter ganz anderem Namen und Header realisiert.</p>
<pre><code class="language-cpp">getch();
</code></pre>
<p>sollte verbreiteter in den conio.h sein.</p>
<p>Gibt dein Compiler nicht an Zeile 194 noch eine Warnung aus?<br />
Hast recht, Borland schluckt die C-String-Funktionen ohne extra Angabe des Header string.h. Das sieht aber nicht jeder Compiler so.</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081810</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Tue, 21 Jun 2011 18:13:52 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Thu, 23 Jun 2011 09:19:52 GMT]]></title><description><![CDATA[<p>Ich finde es echt großartig das hier mein Schreibstiel über 2 Seiten dermaßen getadelt wurde : / aber meine eigentliche Frage hat hier niemand so richtig beantwortet somit steht die noch im Raum und morgen wäre der Abgabe Termin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082463</guid><dc:creator><![CDATA[paret]]></dc:creator><pubDate>Thu, 23 Jun 2011 09:19:52 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Thu, 23 Jun 2011 09:34:13 GMT]]></title><description><![CDATA[<p>Dein Code ist schlicht so unlesbar und wirr, dass es unmöglich für einen Fremden ist, dir konkrete Ratschläge zu geben, außer warum er so unlesbar und wirr ist. Wenn ich mal dreist fragen darf: Kann es sein, dass das auch dein eigenes Problem ist, dass du dich nicht mehr in deinem eigenen Code zurecht findest? Die Formulierung eines Algorithmus zum Suchen und Löschen in einer Datenbank sollte nicht zu schwer sein, du hast sicherlich eine Vorstellung wie das ungefähr gehen könnte. Aber das in dein Programm einzubauen schaffst du selber nicht mehr, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082472</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 23 Jun 2011 09:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Thu, 23 Jun 2011 11:54:07 GMT]]></title><description><![CDATA[<p>einzelne Datensätze löschen?<br />
Datensatz anzeigen - weitere Datei öffnen - da die Daten, die du noch benötigst rein und die zu löschenden nicht. Anschliessend Dateinamen passend machen.</p>
<p>Wo ist da ein Problem?</p>
<p>Kannst auch erst die vorhandene Datei umbenennen und dann die aufnehmende Datei erstellen und die umbenannte dann löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082556</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 23 Jun 2011 11:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank System C++ on Thu, 23 Jun 2011 13:53:26 GMT]]></title><description><![CDATA[<p>Also ich habe gerade versucht dein Programm nachvollziehen und hab die Hälfte auch verstanden... allerdings versagt meine Auffassung bei folgenden Funktionen:<br />
Ausgabe(), Append() und Suchen()</p>
<p>...<br />
Bei mir tut sich folgende Fragestellung auf:<br />
1. Was soll das für ein Datenbanksystem sein?<br />
und<br />
2. Wie sollen die Datensätze gespeichert werden?</p>
<p>Wenn ich mir das angucke, dann fällt mir nämlich auf, dass du den ganzen Datensatz in eine Dateischreibst (<em>fwrite(&amp;Name,sizeof(Satz),1,Liste)</em>), aber soll das bitte aussehen, wenn du einen selbstgebastelten Datentyp in eine Textdatei z.B schreibst?! Da wundert mich es ehrlich gesagt nicht, dass diese Funktionen nicht funktionieren. Ich lass mich auch gerne vom Gegenteil überzeugen, wenn du mal den Output postest, denn bei mir ist der Code nicht durch den Compiler gegangen...<br />
Vllt. solltest du dir zuerst Gedanken machen, wie das Datenbanksystem überhaupt aussehen soll, bevor du anfängst zu coden - erspart dir nämlich viel Zeit und dann wäre es vor allem nicht so ein Riesenakt, das neuzuschreiben (was ich dir auch dringendst empfehle..)</p>
<p>Ich hätte es z.B so gemacht:</p>
<pre><code>DatenSatz1 = Hans Müller hmueller@web.de
DatenSatz2 = Uwe Maier umaier@gmx.de
DatenSatz3 = ...
</code></pre>
<p>oder sogar noch einfacher:</p>
<pre><code>DatenSatz1_Name = Müller
DatenSatz1_Vorname = Hans
DatenSatz1_Email = hmueller@web.de
//
DatenSatz2_Name = Maier
DatenSatz2_Vorname = Uwe
DatenSatz2_Email = umaier@gmx.de
//
DatenSatz3_Name = ...
...
</code></pre>
<p>So wäre es viel einfacher und vor übersichtlicher...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2082641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2082641</guid><dc:creator><![CDATA[HUH?!]]></dc:creator><pubDate>Thu, 23 Jun 2011 13:53:26 GMT</pubDate></item></channel></rss>