Hallo,
kann mir hierbei jemand helfen? Die Dateinamen sollen aus dem angegebenen Ordner miteinander verglichen werden. Das Programm soll die Namen bis zur 8. Stelle des Dateinamens auslesen und identische bereitstellen bzw. durch eine Ausgabe sichtbar machen.
Zum Verständnis:
Folgende Dateien liegen z.B. im Ordner:
12345678 und 12345678.AUF - diese sind identisch bis zur 8. Stelle
12345678 und 98765432.AUF - diese sind nicht identisch
Die Ausgabe soll so ähnlich aussehen:
12345678 und 12345678.AUF sind identisch.
Alles anzeigen
kann mir hierbei jemand helfen? Die Dateinamen sollen aus dem angegebenen Ordner miteinander verglichen werden. Das Programm soll die Namen bis zur 8. Stelle des Dateinamens auslesen und identische bereitstellen bzw. durch eine Ausgabe sichtbar machen.
Zum Verständnis:
Folgende Dateien liegen z.B. im Ordner:
12345678 und 12345678.AUF - diese sind identisch bis zur 8. Stelle
12345678 und 98765432.AUF - diese sind nicht identisch
Die Ausgabe soll so ähnlich aussehen:
12345678 und 12345678.AUF sind identisch.
Quellcode
- #include <windows.h>
- #include <stdio.h>
- #include <iostream>
- #include <string.h>
- using namespace std;
- int main()
- {
- string array;
- string arr[100];
- string array_name[100];
- int i=0;
- cout <<
- "\n"
- "------------------------------------------------------------------\n"
- "Traingsprojekt C++ / Von Michael Moessinger / Version 1.0\n"
- "------------------------------------------------------------------\n"
- "\n"
- "Nach der Eingabe von Enter startet die Datenpruefung..............\n";
- fflush(stdin);
- getchar();
- HANDLE fHandle;
- WIN32_FIND_DATA wfd;
- fHandle=FindFirstFile("O:\\Daten\\Trainingsprojekt_C++\\dfue_eingang\\*",&wfd);
- do
- {
- if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
- {
- if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- {
- }
- else
- {
- fopen("wfd.cFileName","r");
- }
- if(fopen==NULL)
- {
- cout << "Datei konnte nicht geoeffnet werden!";
- fflush(stdin);
- getchar();
- }
- else
- {
- cout << "Die Datei ";
- cout << wfd.cFileName;
- cout << " wurde erfolgreich geoeffnet!\n";
- }
- // Einlesen bis zur 8. Stelle des Dateinamens
- array=wfd.cFileName;
- arr[i]=wfd.cFileName;
- string FileName = arr[i].substr(0,8);
- i++;
- }
- }
- while (FindNextFile(fHandle,&wfd));
- cout << endl << endl;
- for (int x = 0; x < i; x++)
- {
- // durchlaufe alle bisherigen Werte
- for (int j=0; j<i; j++)
- {
- array_name[x]=arr[x].substr(0,8);
- array_name[j]=arr[j].substr(0,8);
- if (array_name[j]==arr[x])
- {
- // Hier wurde ein doppelter Name entdeckt
- cout << arr[j] << " und " << arr[x]<< " sind gleich!" << endl;
- }
- else
- {
- // cout << arr[j] << " und " << arr[x]<< " sind nicht gleich!" << endl;
- }
- }
- }
- FindClose(fHandle);
- cout <<
- "\n"
- "Um fortzufahren druecken Sie Enter!";
- fflush(stdin);
- getchar();
- cout <<
- "\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"
- "*** Die Datenpruefung ist nun abgeschlossen ***\n"
- "\n"
- "Mit der Eingabe von Enter beenden Sie das Programm ...............";
- fflush(stdin);
- getchar();
- return 0;
- }