tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
372
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    D34DL1NES D34DL1NES ist offline Mitglied Gold
    Registriert seit
    Nov 2007
    Beiträge
    117
    Hallo,

    ich muss hier ein Programm schreiben bei dem man anfangs ein paar Werte angibt und anschließend eine Datei nach diesen Werten durchsucht werden soll. Wenn eine 100%ige übereinstimmung gefunden wurde, soll der Name/id der in diesem Fall "Veranstaltung" ausgegeben werden.

    Hier mein bisheriger Code:
    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
    
    #include "stdafx.h"
    using namespace std;
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        cout<<"Ort: ";
        cin>>ort;
        cout<<"\nZeit (tt.mm.jjjj): ";
        cin>>time;
        cout<<"\nTyp: ";
        cin>>typ;
        //-----------------
     
        const char *inputFilePath = "daten.txt";
        const char *outputFilePath = "ergebnisse.txt";
     
        ifstream inputFileStream(inputFilePath);
        if (!inputFileStream)
        {
            cerr << "Could not open " << inputFilePath << " for reading " << endl;
            return 1;
        }
     
        ofstream outputFileStream(outputFilePath);
     
        string line;
        while (getline(inputFileStream, line))
        {
            if (line.find(ort) != string::npos && line.find(time) != string::npos && line.find(typ) != string::npos) {
                cout<<"Datensatz gefunden!";
                outputFileStream << line << endl;
            }
       
        inputFileStream.close();
        outputFileStream.close();
        system("pause");
        return 0;
        }
    }

    Das Problem an der Sache ist, das mit dieser Methode schwachsinnigerweise eine Outputfile erstellt wird wo dann das Suchergebnis drin steht.

    Meine Inputfile sieht so aus:
    Code :
    1
    2
    3
    4
    
    Arnstadt 23.6.2009 lesung Diashow - Amerika
    Ilmenau 0 sport Schwimmbad
    Stützerbach 27.6.2009 kino Film - Der Vorleser
    Manebach 17.6.2009 markt Fischmarkt
    Bei der Angabe von diesen Daten: Ort: Stützerbach time: 27.6.2009 typ: kino
    soll folgende Ausgabe erscheinen:
    Code :
    1
    
    Film - Der Vorleser

    Ich hoffe ich habe mein anliegen recht klar beschrieben und ich hoffe auch dass mit der ein oder andere vlt. helfen kann Danke schon einmal im vorraus!
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.805
    Blog-Einträge
    5
    Hallo,

    du könntest jede Zeile gleich beim Einlesen in ihre Bestandteile (Ort, Datum, Typ, Titel) aufspalten und dann bei Erfolg nur den Titel ausgeben. Dadurch kannst du dann auch die Komponenten gezielt mit den Suchworten vergleichen, wodurch deine Suchfunktion auch robuster werden würde (in der jetzigen Form könnte man z.B. auch "Amerika" als Ort eingeben und würde trotzdem ein Ergebnis finden).

    Kleines Beispiel:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    
    string ort, datum, typ, titel;
    while (inputFileStream) {
        inputFileStream >> ort >> datum >> typ;
        if (!inputFileStream) break;
        getline(inputFileStream, titel);
        // Vergleich mit Suchwörtern und ggf. Rausschreiben des Titels
    }

    Grüße, Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    D34DL1NES D34DL1NES ist offline Mitglied Gold
    Registriert seit
    Nov 2007
    Beiträge
    117
    Danke, genau nach so etwas habe ich gesucht. Ich werds nachher direkt mal ausprobieren.
     

  4. #4
    Avatar von devDevil
    devDevil devDevil ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    Problem is nur wenn nen Space im Ortsnamen steht
     

  5. #5
    D34DL1NES D34DL1NES ist offline Mitglied Gold
    Registriert seit
    Nov 2007
    Beiträge
    117
    Kommt nicht vor, in der File stehen nur 4 Orte und die bestehen alle aus einem Wort. Funktioniert alles Super, danke vielmals
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 07.08.07, 21:08
  2. Antworten: 3
    Letzter Beitrag: 08.09.06, 10:07
  3. [c]Datei Durchsuchen/Ausgeben
    Von sascha ak opi im Forum C/C++
    Antworten: 22
    Letzter Beitrag: 19.07.06, 09:01
  4. Antworten: 5
    Letzter Beitrag: 09.05.04, 14:58
  5. Antworten: 6
    Letzter Beitrag: 06.05.04, 16:39