Programm zum Auslesen, vergleichen und schreiben
-
Hallo habe folgenden Auftrag erteilt bekommen:
Ein C++ Programm soll ein angegebenes Verzeichnis nach zwei gleichlautenden Dateinamen mit unterschiedlichen Dateiendungen durchsuchen. Diese Dateien sollen beide geöffnet werden und dann anhand ihres enthaltenen Datensatzes miteinander verglichen werden. Wenn sie übereinstimmen soll die eine Datei geschlossen werden und die andere Anhand von Vorgaben eines flachen Files auf weitere datensätze überprüft werden. Korrekte datensätze sollen in eine neu angelegte Datei geschrieben werden. Falsche Datensätze sollen ebenfalls in eine weitere neu angelegte Datei geschrieben werden.
Brauche dringend hilfe hierbei, hab keine Ahnung wie ich das bewältigen soll. Zum verständnis bin kompletter Anfänger und brauche dringend Unterstützung.
Vielen, vielen Dank im voraus.
MfG
-
Hallo,
wie können wir dir jetzt helfen?
-
stylewarz3 schrieb:
habe folgenden Auftrag erteilt bekommen
...
bin kompletter Anfänger und brauche dringend Unterstützung.Wer erteilt einem kompletten Anfänger so einen Auftrag?
-
MFK schrieb:
stylewarz3 schrieb:
habe folgenden Auftrag erteilt bekommen
...
bin kompletter Anfänger und brauche dringend Unterstützung.Wer erteilt einem kompletten Anfänger so einen Auftrag?
Der Informatiklehrer
Edit:
Hier noch ein Tip:
Zerlege die Aufgabe in Teilprobleme z.B. suchen (und finden) der Dateien, einlesen der einzelnen Datensätze, Vergleich der Datensätze, je nach Ergebnis Dateien (neu) schreiben. DANN kannst du, wenn du z.B. nicht weist wie man eine Datei öffnet und diese Ausliest, hier im Forum suchen und nach und nach deine kleineren (Teil-) Probleme lösen.

-
Dieser Thread wurde von Moderator/in Korbinian aus dem Forum Projekte in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Vielen Dank für die schnelle Rückmeldung!
1. Stimmt ist wahrscheinlich die beste Herangehensweise. Hab jetzt zumindestens schonmal ein Programm das Dateien einliest und wegschreiben kann. Dies ist aber immer beschränkt auf die Datei, die ich im Code selbst angebe. Wie kann ich dies so gestalten, dass das Programm alle Dateien in den Ordnern öffnet?
2. Wie kann ich Datensätze aus Dateien miteinander vergleichen (1 datensatz = 40 zeichen) - 1 Datei = unterschiedlich viele Datensätze von 1 - 1000000? Viell. ein kleines Programmbeispiel?
Vielen, vielen Dank nochmals!!!
MfG
-
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <iostream>using namespace std;
struct Datensatz
{
char Satzlaenge [200];
};FILE *zeiger1;
FILE *zeiger2;
FILE *zeiger3;
FILE *zeiger4;
FILE *zeiger5;
FILE *zeiger6;int main ()
{{
string i;cout << "Bitte bestaetigen sie die Datenpruefung mit einer beliebigen Tastatureingabe!";
cin >> i;
}Datensatz satzlaenge_schreiben, satzlaenge_auslesen;
// Öffnen der Nutzdatendatei im Eingangsverzeichnis zum Auslesen
zeiger1 = fopen("O:\\Daten\\Trainingsprojekt_C++\\dfue_eingang\\L07AG034","r");
if(zeiger1==NULL)
{
cout << "Datei kann nicht geöffnet werden";
}
else
{
fread (&satzlaenge_auslesen, sizeof(Datensatz), 1, zeiger1);while (!feof(zeiger1) )
{fread (&satzlaenge_auslesen, sizeof(Datensatz), 1, zeiger1);
}}
fclose(zeiger1);
// Öffnen der Auftragsdatendatei im Eingangsverzeichnis zum Auslesen
zeiger2 = fopen("O:\\Daten\\Trainingsprojekt_C++\\dfue_eingang\\L07AG034.AUF","r");
if(zeiger2==NULL)
{
cout << "Datei kann nicht geöffnet werden";
}
else
{
fread (&satzlaenge_auslesen, sizeof(Datensatz), 1, zeiger2);while (!feof(zeiger2) )
{fread (&satzlaenge_auslesen, sizeof(Datensatz), 1, zeiger2);
}}
fclose(zeiger2);
// Öffnen der Datei im Ausgang zum schreiben
zeiger3 = fopen("O:\\Daten\\Trainingsprojekt_C++\\dfue_ausgang\\L07AG034_korrekt","a");
if(zeiger3==NULL)
{
cout << "Datei kann nicht geöffnet werden";
}
else
{
fwrite(&satzlaenge_schreiben, sizeof(Datensatz), 1, zeiger3);
}fclose(zeiger3);
// Öffnen der Datei im Fehlerverzeichnis
zeiger4 = fopen("O:\\Daten\\Trainingsprojekt_C++\\fehler\\L07AG034_fehler","a");
if(zeiger4==NULL)
{
cout << "Datei kann nicht geöffnet werden";
}
else
{
fwrite(&satzlaenge_schreiben, sizeof(Datensatz), 1, zeiger4);
}fclose(zeiger4);
// Öffnen der Datei im Protokollverzeichnis
zeiger5 = fopen("O:\\Daten\\Trainingsprojekt_C++\\protokoll\\L07AG034_protokoll","a");
if(zeiger5==NULL)
{
cout << "Datei kann nicht geöffnet werden";
}
else
{
fwrite(&satzlaenge_schreiben, sizeof(Datensatz), 1, zeiger5);
}fclose(zeiger5);
// Öffnen der Datei im Auftragsdatenverzeichnis zum schreiben
zeiger6 = fopen("O:\\Daten\\Trainingsprojekt_C++\\auftragsdateien\\L07AG034.AUF_korrekt","a");
if(zeiger6==NULL)
{
cout << "Datei kann nicht geöffnet werden";
}
else
{
fwrite(&satzlaenge_schreiben, sizeof(Datensatz), 1, zeiger6);
}fclose(zeiger6);
string u;
cout <<
"\n"
"Die Datenpruefung ist nun abgeschlossen!\n"
"\n"
"---------------------------------------------------------------\n"
"> Korrekte Datensaetze befinden sich im Verzeichnis 'dfue-ausgang'\n"
"> Fehlerhafte Datensaetze befinden sich im Verzeichnis 'fehler'\n"
"> Protokolldaten befinden sich im Verzeichnis 'protokoll'\n"
"---------------------------------------------------------------\n"
"\n"
"Durch eine beliebige Eingabe schliessen sie das Fenster!";
cin >> u;}
-
stylewarz3 schrieb:
Wie kann ich dies so gestalten, dass das Programm alle Dateien in den Ordnern öffnet?
http://fara.cs.uni-potsdam.de/~kaufmann/dirstream/index.html