000
12.07.2006, 13:01 Uhr
stylewarz3
|
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.
C++: |
#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; }
|
Dieser Post wurde am 12.07.2006 um 13:05 Uhr von FloSoft editiert. |