Problem mit fopen() in Vista



  • Ich schreibe zurzeit ein kleines Verschlüsselungsprogramm für .txt - Dateien, doch ich habe das Problem, dass ich die Ursprungsdatei(=startdatei) nicht lesen lässt. Es wird immer als Wert NULL zurückgegeben, egal, wie ich es mache. Muss man mit Vista es irgendwie anders machen (mit xp hat es immer funktioniert).

    \E: Ich benutze Code::Blocks mit dem GNU GCC Compiler

    \E²: Die txt-Datein sind auch im selben verzeichniss

    void dateipruefung(char *name)
    {
        int laenge;
        char *zeiger;
    
        zeiger = strstr(name, ".txt");
    
        if(zeiger==NULL)
        {
            laenge = strlen(name);
    
            if(laenge>16)
            {
                *(name+16) = '.';
                *(name+17) = 't';
                *(name+18) = 'x';
                *(name+19) = 't';
                *(name+20) = '\0';
            }
            else
            {
                *(name+laenge) = '.';
                *(name+laenge+1) = 't';
                *(name+laenge+2) = 'x';
                *(name+laenge+3) = 't';
                *(name+laenge+4) = '\0';
            }
        }
    }
    [...]
    
        char verfahren[verf_laenge];
        char pufferV[verf_laenge];
    
        char *alphabetzeiger[verf_laenge-1];
        char *dyn_speicherzeiger;
    
        char pruefung;
    
        char dateiname[21];
        char puffer[21];
    
        long dateigroesse;
        int i = 0;
    
        FILE *startdatei;
        FILE *zieldatei;
    
    [...]
       do
       {
    
            printf("Geben sie die Quell-textdatei ein, die verschluesselt\n");
            printf("werden soll\n");
    
            fgets(puffer, sizeof(puffer), stdin);
            sscanf(puffer, "%s\n", dateiname);
    
            dateipruefung(dateiname);
    
            startdatei = fopen(dateiname,"rb");
    
            if(startdatei==NULL)
            {
                printf("\t|%s| nicht gefunden.\n\n", dateiname);
            }
    
        }while(startdatei==NULL);
    [...]
    

    \E: Scheinbar lag es an Windows nach einer Defragmentierung hat es plötzlich funktioniert... xD


Anmelden zum Antworten