Suchfunktion in einer DAtenbank



  • Hi Leute
    Mal ne Frage kann mir wer helfen oder wo finde ich Bsp. für Suchfunktionen. Hab ne Datenbank erstellt in der am Ende Daten in einer Datei gespeichert werden.Ich möchte aus dieser Datei z.B. alle ArtikelNummern heraussuchen und auf dem Bildschirm ausgeben lassen die zwischen einem gewählten Min- und Maxwert liegen sollen

    Verküzte Fassung meiner Datenbank:

    #include...

    char Platz[15];
    ...
    void main()
    {
    FILE *f_datei;
    f_datei=fopen(Dateiname,"w");

    cout <<"Geben Sie die Artikelnummer ein (zwischen10 und 999):";
    cin >>Platz;
    Datenbank[x].ArtNr;
    ...
    cout <<"Eingabe Artikelbeschreibung:";
    cin >>Platz;
    Datenbank[x].ArtBeschreib;
    ...
    fwrite(&Datenbank[15],sizeof(Artikeldb),1,f_datei);
    fclose(f_datei);
    ...
    FILE *f_datei;
    cout <<"Vorhandene Artikeldatenbank wird geoeffnet!n\n";
    f_datei=fopen(Dateiname,"r");

    //hier soll die Suchfunktion sein. Minwert eingeben und Maxwert eingeben und alle Artikelnummern zwischen Min undMax ausgeben.



  • Das sieht so aus alsob du die Daten in einen Array von Strukturen einliest.
    Du musst dann einfach nur alle durchgehen und die Werte prüfen ob sie zwischen
    Min und Max liegen.



  • Ich brauch nur n Anreiz, weil ich schon am Verzweifeln bin!



  • for(int i= 0; i < AnzahlDatensätze; ++i)
    {
      if(Datensatz[i].ArtikelNr > Min && Datensatz[i].ArtikelNr < Max)
      {
        cout << "Datensatz " << i << " ist im Suchkreterium";
      }
    }
    

    [ Dieser Beitrag wurde am 04.06.2003 um 19:32 Uhr von C Newbie editiert. ]



  • Habs mal eingebaut, aber irgendwie läuft da noch was nicht(nur ein Ausschnitt):
    ...
    int MinWert,MaxWert;
    const int Maximum=15
    ...
    switch(AuswahlB)
    {
    case '1':
    Counter=0;
    cout <<"Geben Sie einen Suchbereich fuer die Artikelnummern ein:\n";
    cout <<"Hier bitte den Mindestwert: ";
    cin >>MinWert;
    cout <<"\nHier bitte den Maximalwert: ";
    cin >>MaxWert;
    cout <<"\n";

    for(i=0;i<Maximum;i++)
    {
    Counter++;
    if((Datenbank[i].ArtNr>=MinWert) && (Datenbank[i].ArtNr <=MaxWert)
    {
    cout <<"Es wurden gefunden:\n";
    cout<<"------------------------------------------\n";
    cout <<"ArtNr\t\tArtBeschrei\n\n";
    cout <<Datenbank[i].ArtNr <<"\t\t" <<Datenbank[i].ArtBeschr;
    cout <<Counter <<" Artikel gefunden\n";
    }
    else
    cout <<"Keine Artikel gefunden\n";
    break;
    }
    break;

    default:
    break;
    }
    Neben der Artikelnummer wird noch die zugehörige ArtBeschr ausgegeben und zum Schluß die Anzahl der gefunden Artikel.Nur das machts nicht.Es wird gleich nach der Eingabe des MaxWert das Programm beendet.Vielleicht weiß da wer weiter?


Anmelden zum Antworten