Avatar billede mobi2 Nybegynder
08. maj 2000 - 11:42 Der er 1 kommentar og
1 løsning

Filer i stimer 2

ok nu får jeg snart et lille flip her.... Jeg prøvede at sætte koden sammen med resten af mit program..... det vil bare ikke virke... jeg har fundet fejlen... jeg kan ikke åbne de filer som jeg overfører fra main til do_something funktionen..... hvad gør jeg galt.... det er bare som om at den skriver en fandens lang sti til den fil som den overfører.....
please hjæææælp
jeg har lige inkluderet koden her som eksempel...

char do_something(char filnavn1[80], char filnavn2[80])
{
    cout<<"Test p† "<<filnavn1<<" og "<<filnavn2<<endl;
    FILE *test = fopen(filnavn1,"r");
    if(!test)
        cout<<"Could not open file........";
    fclose(test);
    return 0;
}



//////////////////////////////////////////////////////////
// Leder et dir bestemt af brugeren igennem for filer    //
// af en bestemt extension, ogs† bestemt af brugeren    //
//////////////////////////////////////////////////////////
int Dir_filer(void)
{
    struct ffblk ffblk;
    int done;
    char c;
    char filnavn[80]="c:\\otdr\\files.dat";
    char sti[70];
    char ext[10]="*.asc";
    char opens[75];

    clrscr();
    cout<<"Please enter path for files:"<<endl;
    cout<<"(eg. n:\\Tad\\Edd\\Measurements\\Test1\\)"<<endl;
    cout<<"Path: ";
    cin>>sti;
    strcpy(opens, sti);
    strcat(opens, ext);

    fstream in(filnavn, ios::out);
    if (!in)
        cerr<<"Unabel to open file: "<<filnavn<<" for input!";
    else
    {
        clrscr();
        cout<<"Files to analyse: \n";
        done = findfirst(opens,&ffblk,0);
        while (!done)
        {
            printf("  %s\n", ffblk.ff_name);
            ofstream out(filnavn,ios::out|ios::app);
            if(!out)
                cerr<<"Unabel to open file: "<<filnavn<<" for output!";
            out.write(sti, strlen(sti));
            out.write(ffblk.ff_name, strlen(ffblk.ff_name));
            out.write("\n",1);
            while(out&&in.get(c))
                out.put(c);
            out.close();
            done = findnext(&ffblk);
        }
    }
    cout<<"\nPress any key to continue analyse.\n";
    getch();
    in.close();
    return (0);
}


int main(void)
{
    char filename[80]="c:\\otdr\\files.dat";
//    char fname1[MAXPATH], fname2[MAXPATH];
    char fname1[80], fname2[80];

    Dir_filer();

    FILE *finp = fopen(filename, "r");
    if (finp == NULL)
    fprintf(stderr, "Filen %s kunne IKKE åbnes.\n", filename);
    else
    { /* Hent første fil-navn. */
        if (fgets(fname1, sizeof(fname1)-1, finp) != NULL)//TEST
//        if (fgets(finp, sizeof(fname1)-1, name1) != NULL)
// read a string from the file
//fgets(msg, strlen(string)+1, stream);

      /* Hent næste fil-navn. */
      while (fgets(fname2, sizeof(fname2)-1, finp) != NULL)//TEST
//      while (fgets(finp, sizeof(fname2)-1, fname2) != NULL)
      { /* Sammenlig de to filer. */
        do_something(fname1, fname2);
        /* Gør klar til de næste to filer. */
//        strncpy(fname1, fname2, sizeof(fname1)-1);
      }
    fclose(finp);
  }
  return 0;
}
Avatar billede mobi2 Nybegynder
08. maj 2000 - 11:50 #1
jeg er ikke sikker, men jeg tror det har noget at gøre med at den ikke fjerner det CR eller LF der er sidst på filnavnet, kan det passe???
Avatar billede mobi2 Nybegynder
09. maj 2000 - 01:41 #2
Jeg har selv fundet fejlen... langt om længe....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester