Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Vergleich mit Substrings...? Hilfe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: