Vergleich mit Substrings...? - Hilfe -

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Vergleich mit Substrings...? - Hilfe -

    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.



    Quellcode

    1. #include <windows.h>
    2. #include <stdio.h>
    3. #include <iostream>
    4. #include <string.h>
    5. using namespace std;
    6. int main()
    7. {
    8. string array;
    9. string arr[100];
    10. string array_name[100];
    11. int i=0;
    12. cout <<
    13. "\n"
    14. "------------------------------------------------------------------\n"
    15. "Traingsprojekt C++ / Von Michael Moessinger / Version 1.0\n"
    16. "------------------------------------------------------------------\n"
    17. "\n"
    18. "Nach der Eingabe von Enter startet die Datenpruefung..............\n";
    19. fflush(stdin);
    20. getchar();
    21. HANDLE fHandle;
    22. WIN32_FIND_DATA wfd;
    23. fHandle=FindFirstFile("O:\\Daten\\Trainingsprojekt_C++\\dfue_eingang\\*",&wfd);
    24. do
    25. {
    26. if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
    27. {
    28. if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    29. {
    30. }
    31. else
    32. {
    33. fopen("wfd.cFileName","r");
    34. }
    35. if(fopen==NULL)
    36. {
    37. cout << "Datei konnte nicht geoeffnet werden!";
    38. fflush(stdin);
    39. getchar();
    40. }
    41. else
    42. {
    43. cout << "Die Datei ";
    44. cout << wfd.cFileName;
    45. cout << " wurde erfolgreich geoeffnet!\n";
    46. }
    47. // Einlesen bis zur 8. Stelle des Dateinamens
    48. array=wfd.cFileName;
    49. arr[i]=wfd.cFileName;
    50. string FileName = arr[i].substr(0,8);
    51. i++;
    52. }
    53. }
    54. while (FindNextFile(fHandle,&wfd));
    55. cout << endl << endl;
    56. for (int x = 0; x < i; x++)
    57. {
    58. // durchlaufe alle bisherigen Werte
    59. for (int j=0; j<i; j++)
    60. {
    61. array_name[x]=arr[x].substr(0,8);
    62. array_name[j]=arr[j].substr(0,8);
    63. if (array_name[j]==arr[x])
    64. {
    65. // Hier wurde ein doppelter Name entdeckt
    66. cout << arr[j] << " und " << arr[x]<< " sind gleich!" << endl;
    67. }
    68. else
    69. {
    70. // cout << arr[j] << " und " << arr[x]<< " sind nicht gleich!" << endl;
    71. }
    72. }
    73. }
    74. FindClose(fHandle);
    75. cout <<
    76. "\n"
    77. "Um fortzufahren druecken Sie Enter!";
    78. fflush(stdin);
    79. getchar();
    80. cout <<
    81. "\n"
    82. "------------------------------------------------------------------\n"
    83. "> Korrekte Datensaetze befinden sich im Verzeichnis 'dfue-ausgang'\n"
    84. "> Fehlerhafte Datensaetze befinden sich im Verzeichnis 'fehler'\n"
    85. "> Protokolldaten befinden sich im Verzeichnis 'protokoll'\n"
    86. "------------------------------------------------------------------\n"
    87. "\n"
    88. "*** Die Datenpruefung ist nun abgeschlossen ***\n"
    89. "\n"
    90. "Mit der Eingabe von Enter beenden Sie das Programm ...............";
    91. fflush(stdin);
    92. getchar();
    93. return 0;
    94. }
    Alles anzeigen