Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

otvaranje fajlova sa promenljivim imenom

[es] :: C/C++ programiranje :: otvaranje fajlova sa promenljivim imenom

[ Pregleda: 3661 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos Vasin

Član broj: 40898
Poruke: 8
*.iws.uni-stuttgart.de.



Profil

icon otvaranje fajlova sa promenljivim imenom05.04.2005. u 10:27 - pre 200 meseci
Cao ljudi, imam jedan mali problem.
Imena fajlova su mi tplfilm.0000, tplfilm.0001, tplfilm.0002 itd.
Treba da ih otvaram u petlji, ali kako da mi menja zadnji broj?

for (z=0;z<9;z++)
{
g=fopen(tplfilm.000 (ovde ne znam sta da upisem. ???)
fclose(g);
}

znaci prvo mi otvori tplfilm.0000, nesto uradi, zatvori, pa onda otvara tplfilm.0001 itd.

Ako neko zna bilo bi super da mi pokaze, jer sam ja u matlabu imao ovakav kod koji radi u matlabu:


namein=sprintf('/home/milos/128128/example/EX1p_Insa/tplfilm.000%d',W);

gde mi je W brojac.

pretpostavljam da je nesto slicno.
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.in.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: otvaranje fajlova sa promenljivim imenom05.04.2005. u 15:25 - pre 200 meseci
Jao, jao, pa zar ne pomaze citanje uputstva za printf() komandu?!

Code:

for (int i=0; i < 10000; i++) printf("%04d", i);


Sad, tebi je naravno potreban sprintf. Siguran sam da ces se snaci (hint: "%04d").
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: otvaranje fajlova sa promenljivim imenom05.04.2005. u 15:30 - pre 200 meseci
Evo kraci primer (u C-u) koji bi mogao resiti tvoj problem:
Code:
//Windows 2000, Dev-C++ 4.9.9.1
#include <stdio.h>
int main ()
{
    int i,n;
    char ime[255];
    FILE *pFile;
    for (i=0;i<12;i++)
    {
        n = sprintf(ime, "tplfilm.%04d",i); // generisi ime fajle i vrati broj
                                            // upisanih karaktera ili negativan broj
                                            // u slucaju greske
        pFile = fopen (ime,"wt");           // otvori fajlu za upis u text modu
        fputs("pisem u fajl: ",pFile);      // upisi text 
        fputs(ime,pFile);                   // upisi ime fajle 
        fclose(pFile);                      // zatvori fajlu 
    }
    system("pause");
    return 0;
}
}

 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: otvaranje fajlova sa promenljivim imenom05.04.2005. u 15:35 - pre 200 meseci
Ops...
Da ne menjam poruku, izbrisi sam poslednju veliku zagradu!
 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: otvaranje fajlova sa promenljivim imenom06.04.2005. u 12:04 - pre 200 meseci
Evo (skoro) isto to SAMO da ispunjava zahtev 8+3 (dos!)...

Code:


void writeM(char *mFile, int tc, int sc, float tt)
    {
    FILE *fpOut;
    char mFileName[81];
    char *nula1 = "0";
    int tempy = 0;
    char buffer[17];
    int i = 0;
    int clip = 0;

    strncpy(mFileName, mFile, 4); // fajlovi za sp
    mFileName[4] = '\0';
    if(sc < 10)
    strcat(mFileName, nula1);
    if(sc < 100)
    strcat(mFileName, nula1);
    if(sc < 1000)
    strcat(mFileName, nula1);
    itoa(sc, buffer, 10);
    strcat(mFileName, buffer);
    if (!strrchr(mFileName, '.')) // add extension
    strcat(mFileName, ".mss");

    /* Check existence of file mFileName */
    if(access(mFileName, 0) == NULL) {
       printf("ERROR: file %s exists\n", mFileName);
       exit(-2);
    }

    if ((fpOut = fopen(mFileName, "w")) == (FILE *) NULL)
    {
    fprintf(stderr, "ERROR: Cannot open file %s\n", mFileName);
    exit(-2);
    }
/* Sad radi sa fajlom sta vec treba */
}


Bili ko mogao da ovo (a i onaj "txt"), "prevede" u C#?
Mozda C++?

 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: otvaranje fajlova sa promenljivim imenom06.04.2005. u 13:37 - pre 200 meseci
Citat:
dejandj: Evo (skoro) isto to SAMO da ispunjava zahtev 8+3 (dos!)...
Mislim da si ga nepotrebno zakomplikovao, jer se tri mesta u ekstenziji moze obezbediti sa:
Code:
n = sprintf(ime, "tplfilm.%04d",i);

Sto se tice C# ne bih da probam, ali u C++ fazonu bi to izgledalo ovako:
Code:
//Windows 2000, Dev-C++ 4.9.9.1
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main(int argc, char *argv[]){
    char prev;
    int maxb = 12;
    for (int i=0;i<maxb;i++){
        stringstream ss;
        prev = cout.fill();      // sacuvaj stari fill character (mozda ti zatreba)
        ss.fill ('0');
        ss.width(4);
        ss<<i;
        string myFile = "tplfilm." + ss.str();
        ss.fill(prev);        // vrati predhodni fill character 
        cout<<myFile<<endl;
        ofstream outf(myFile.c_str());
        outf<<"zapisujem u fajlu: "<<myFile<<endl;
        outf.close();
    }
    system("PAUSE");
    return 0;
}

Izgleda komplikovanije nego u C-u, ali se covek brzo navikne...

 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: otvaranje fajlova sa promenljivim imenom06.04.2005. u 14:38 - pre 200 meseci
Citat:
idb: Mislim da si ga nepotrebno zakomplikovao, jer se tri mesta u ekstenziji moze obezbediti sa:
...
Sto se tice C# ne bih da probam, ali u C++ fazonu bi to izgledalo ovako:
...
Izgleda komplikovanije nego u C-u, ali se covek brzo navikne...


Nisi me "dobro" razumeo...

Za 9999 fajlova u 8.3 formatu extenzija NEmoze da se koristi pa je "file name" redukovan na 4 (cetiri) znaka a preostala 4 su string (0000-9999) a extenzija je fix.

Razmisljao sam se i o HEX extenziji sto bi moglo dati 4096 fajlova!
Inace ovaj "moj" code je za generisanje fajlova iz matrice i poziva se kao funkcija kojoj se prosledjuje file name...

U svakom slucaju hvala!
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: otvaranje fajlova sa promenljivim imenom06.04.2005. u 16:27 - pre 200 meseci
Da budem iskren, od tvog koda sam samo video onaj deo sa if(sc...) pa sam se setio da sam ja tako nekad u Pascalu radio jer nisam znao bolje, a trebale su mi falje Graf001.plt....Graf999.plt.
Kada sam presao u ove vode video sam da se slicne stvari resavaju lakse sa sprintf i svidelo mi se...kako i ne bi.
U svakom slucaju, mislim da Milos ima sada dovoljno materijale da resi svoj problem.
 
Odgovor na temu

Milos Vasin

Član broj: 40898
Poruke: 8
*.iws.uni-stuttgart.de.



Profil

icon Re: otvaranje fajlova sa promenljivim imenom07.04.2005. u 17:21 - pre 200 meseci
Hvala puno. Odradio sam :)))))
 
Odgovor na temu

[es] :: C/C++ programiranje :: otvaranje fajlova sa promenljivim imenom

[ Pregleda: 3661 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.