|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 53
|
[C] aprire molti file
ciao a tutti, mi servirebbe una mano, dovrei aprire molti file e evitare di fare tanti puntatori diversi, pensavo di fare una specie di array. questo e quello che scrivo ma ovviamente è sbagliato! volevo sapere se e possibile fare una cosa del genere! perchè vorrei passare a altre funzioni solo un puntatore!
sicuramente mi sono spiegato male quindi vi scrivo il codice magari mi capite meglio e se potete mi date alternative grazie! FILE dati[27][4]; dati[0][0] = fopen ( "/Users/Tom/Tesi/DIVISI/AHP-15m.tom","r"); dati[0][1] = fopen( "/Users/Tom/Tesi/DIVISI/AHP/AHP-15m-1.tom","r"); dati[0][2] = fopen( "/Users/Tom/Tesi/DIVISI/AHP/AHP-15m-2.tom","r"); dati[0][3] = fopen( "/Users/Tom/Tesi/DIVISI/AHP/AHP-15m-3.tom","r"); dati[1][0] = fopen ( "/Users/Tom/Tesi/DIVISI/AIG-15m.tom","r"); grazie ancora! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sono grandi questi file ?
Se sono piccoli ti conviene trasferirli tutti in memoria |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2000
Città: Bari-Brindisi-Lecce e prov
Messaggi: 424
|
fopen ritorna un puntatore a FILE, quindi dovresti definire gli elementi del vettore come puntatori a FILE.
Prova con FILE *dati[27][4]; Ti consiglierei anche di creare una tua funzione ApriFile(char*nomedelfile, char*modalita) da utilizzare cosi' dati[0][0] = ApriFile ( "/Users/Tom/Tesi/DIVISI/AHP-15m.tom","r"); e che si occupa al suo interno della chiamata ad fopen per aprire il file e gestisce l'eventuale errore se il file stesso e' non esistente.
__________________
VoIp Gratis - Adsl senza canone telecom Ho trattato con: adarkar,Bobosassa, matrix866,M@t,k|o, percky,s5otto, Rospaccio, CluRaCaN, Igor,Zizziry, bokkakesballa, Pex,freewilly, Umbyboy,DAVO, nathbigga, fabiuxx ed altri. Diffidate di quinnuxxa |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 53
|
grazie mille infatti era nel mio progetto mi dimenticavo della *. perchè pensavo che dichiarando l'array non avessi bisogno del puntatore
i file sono molto grandi |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Mar 2007
Messaggi: 53
|
Quote:
FILE *ApriFile(char *nomedelfile, char *modalita) { FILE *in; in = fopen(nomedelfile,modalita); if(in==NULL) printf("errore apertura file %s",&nomedelfile); return in; } Ultima modifica di Tomsl : 21-12-2008 alle 23:55. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2000
Città: Bari-Brindisi-Lecce e prov
Messaggi: 424
|
Aggiungerei un interruzione del programma al punto dell'errore, altrimenti il programma proseguirebbe l'esecuzione nonostante l'errore.
Codice:
FILE *ApriFile(char *nomedelfile, char *modalita)
{
FILE *in;
in = fopen(nomedelfile,modalita);
if(in==NULL){
printf("errore apertura file %s",&nomedelfile);
exit(-1);/* Termino l'esecuzione */
}
return in;
}
__________________
VoIp Gratis - Adsl senza canone telecom Ho trattato con: adarkar,Bobosassa, matrix866,M@t,k|o, percky,s5otto, Rospaccio, CluRaCaN, Igor,Zizziry, bokkakesballa, Pex,freewilly, Umbyboy,DAVO, nathbigga, fabiuxx ed altri. Diffidate di quinnuxxa Ultima modifica di stefano_ba : 22-12-2008 alle 00:14. |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 53
|
grazie!
Ultima modifica di Tomsl : 14-01-2009 alle 19:55. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:43.




















