tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1921
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    grillse grillse ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    32
    Hallo,

    ich habe folgendes Programm geschrieben, in dem man Kundendaten eingeben kann und diese danach in eine Datei geschrieben wird. Gleichzeitig zaehlt ein Zaehler mit und vergibt für jeden Kundendateneintrag eine Kundennummer, danach kommen dann die Kundendaten. Lässt sich blöd erklären aber so sieht das dann in der Datei aus:

    ####
    0
    Bla GmbH
    SchmidtManfred
    bla 5
    42313
    irgendwas
    012312334
    1
    Bla 2 GmbH
    HeinzSiegfred
    Irgendwo 12
    31231
    nirgendwo
    1234032

    ...danach kommt dann Kunde "2" und dessen Daten, usw.
    ###

    Allerdings habe ich nun das Problem das ich die Daten nicht einlesen kann, bzw. ich nicht weiß wie ich das umsetzen soll...

    Ich denke mal die einfachste Lösung wäre doch nach dem Eintrag Nr 1 zu Suchen und dann die nächsten 6 Zeilen auszugeben bzw einzulesen!


    Hier der Code, sieht noch kaotisch aus, aber er funktioniert schonmal...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    
    //---------------------------------------------------------------------------
    #include <stdio.h>
    #include <iostream.h>
    #include <iomanip.h>
    #include <fstream.h>
    using namespace std;
     
    //---------------------------------------------------------------------------
     
     
    /* Projekt Anwendungsentwicklung C++ / 28.04.2004 */ 
     
    int main()
    {
        char fname[60],name[60],vname[60],strasse[60],ort[60],plz[5],tel[60];
        int auswahl = 0, kdnr;
     
        const char* kundenz = "zaehler.dat";
        const char* kundendat = "kunden.dat";
     
        ifstream Zaehlerin;
        Zaehlerin.open(kundenz);
        if (!Zaehlerin)
        {
            cout << "Fehler beim Oeffnen der Zaehlerdatei!\n"
            "Datei wird neu erstellt, starten Sie das Programm jetzt bitte neu!";
            {
                ofstream zaehlernew(kundenz);
                if (!zaehlernew) {
                    cout << "Zaehlerdatei kann nicht erstellert werden!\n";
                    exit (1);
                }
                zaehlernew << auswahl << endl;
            }
            exit(1);
        }
        Zaehlerin >> kdnr;
        Zaehlerin.close();
     
        cout << kdnr << '\n';
        cout << "\tIT4YOU\nCustomer Management Software\tv0.10 28.04.2004\n\n";
     
        /* EINGABE */
    Start:
        cout << "Zum Start der Eingaben bitte [ENTER] druecken!" << endl;
        getchar();
        cout << setw(20) << "Firmenname: ";
        cin.getline(fname, 60);
        cout << setw(20) << "Nachname: ";
        cin.getline(name, 60);
        cout << setw(20) << "Vorname: ";
        cin.getline(vname, 60);
        cout << setw(20) << "Strasse + Hausnr.: ";
        cin.getline(strasse, 60);
        cout << setw(20) << "PLZ: ";
        cin.getline(plz, 6);
        cout << setw(20) << "Stadt: ";
        cin.getline(ort, 60);
        cout << setw(20) << "Telefon: ";
        cin.getline(tel, 60);
     
        cout << "\nDie Kundendaten wurden erfolgreich eingegeben, Sie koennen sich "
        "nun fuer einen der folgenden Schritte entscheiden:\n";
        cout << "1 - Kundendaten einsehen\n2 - Kundendaten exportieren";
        cin >> auswahl;
        fflush(stdin); 
        
        /* ANFANG ANZEIGEN */
        if (auswahl == 1) {
        cout << "Anzeige:" << endl;
        cout << setw(20) << "Firmenname: " << fname << endl;
        cout << setw(20) << "Nachname: " << name << endl;
        cout << setw(20) << "Vorname: " << vname << endl;
        cout << setw(20) << "Strasse + Hausnr.: " << strasse << endl;
        cout << setw(20) << "PLZ: " << plz << endl;
        cout << setw(20) << "Stadt: " << ort << endl;
        cout << setw(20) << "Telefon: " << tel << endl;
     
        }
        /* ENDE ANZEIGEN */
        
        /* ANFANG EXPORTIEREN + KUNDENZAEHLER +1 & SPEICHERN */
        {
            ofstream Output(kundendat, ios::app);
            if (!Output) {
                cout << "Fehler beim Erstellen der Kundendatei!\n";
                exit (1);
            }
            Output << kdnr << endl;
            Output << fname << endl;
            Output << name << vname << endl;
            Output << strasse << endl;
            Output << plz << endl;
            Output << ort << endl;
            Output << tel << endl;
        }
        // Daten wurden gespeichert, Kundennr.-Zähler + 1
        kdnr++;
        ofstream Zaehlerout;                // Speichern der aktuellen Kundennr.
        Zaehlerout.open(kundenz);
     
        if (!Zaehlerout) {
            cout << "Fehler beim Oeffnen der Datei!\n";
            exit(1);
        }
        Zaehlerout << kdnr;
        Zaehlerout.close();
        /* ENDE EXPORTIEREN + KUNDENZAEHLER +1 & SPEICHERN */
     
        return 0;
    }
     

  2. #2
    grillse grillse ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    32
    Kann mir den keiner helfen? Ist echt wichtig für mich...

    Gruß Tom
     

  3. #3
    Avatar von BadMourning
    BadMourning BadMourning ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    158
    Du kannst es natürlich ganz einfach machen, in dem du es wie
    eine INI-Datei schreibst. Dann kannst du evtl sogar die Bibliotheks-
    funktionen verwenden (GetPrivateProfileString!).

    Die Datei sähe dann so aus:

    [1]
    firma=ccc
    name=xxx
    strasse=ddd
    ..

    [2]
    firma=fff
    name=xhf
    strasse=dtrd
    ..

    mit nem Zähler kannst du dann über die Blöcke iterieren.
     

  4. #4
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Der Gedanke ist im Prinzip gut, allerdings läuft das erstens nur mit Windows und zweites dürfen .ini-Dateien nur 32KB gross werden. Das wird wahrscheinlich nicht ausreichen.

    @grillse: Schau mal hier rein, ich habe da mal einen Ansatz gepostet, wie man es machen könnte: Klick
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  5. #5
    grillse grillse ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    32
    Erstmal danke für eure Antworten!

    Das erste Beispiel scheint recht einfach umsetzbar zu sein, allerdings habe ich wie gesagt kein Plan wie ich nach bestimmten stellen suchen kann.

    @Kachelator: Bei deinem Vorschlag/Beispiel blicke ich ehrlich gesagt nicht ganz durch, liegt wohl dadran das ich erst mit der Programmierung angefangen habe.
     

  6. #6
    grillse grillse ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    32
    So, habe jetzt eine andere Idee, allerdings in meinem CPP Kurs verstehe ich nicht so ganz wie man z.B. Zeile 5 in einer Datei auslesen kann.

    Kann das vielleicht nochmal jemand erklären?
     

  7. #7
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Die Zeilen in einer Textdatei werden durch Zeilenumbrüche ('\n') getrennt. Die fünfte Zeile beginnt nach dem vierten '\n'. Du könntest also die Zeilenumbrüche zählen, wenn du die Datei zeichenweise mit istream::get() einliest. Du kannst aber auch direkt istream::getline() nutzen, das dir deine ganze Zeile einliest.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 17.05.09, 11:41
  2. Datei in String einlesen danach durchsuchen
    Von celloman im Forum Java
    Antworten: 17
    Letzter Beitrag: 05.10.07, 14:27
  3. Antworten: 3
    Letzter Beitrag: 07.08.07, 21:08
  4. [c]Datei Durchsuchen/Ausgeben
    Von sascha ak opi im Forum C/C++
    Antworten: 22
    Letzter Beitrag: 19.07.06, 09:01
  5. Inhalt einer Text Datei kopieren
    Von partitionist im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 31.08.05, 14:14