Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 07-07-2004, 11.39.29   #1
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
file e C

in C, come posso capire se un file esiste già?

grazie...
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 07-07-2004, 11.51.49   #2
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Cosa intendi fare?
Vuoi solo sapere se esiste, oppure vuoi fare in modo che se già esiste non venga sovrascritto?
Alhazred non è collegato   Rispondi citando
Vecchio 07-07-2004, 11.54.15   #3
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
se esistente non deve essere possibile sovrascriverlo...

ho risolto provando ad aprirlo in lettura e se ci riesco, richiedo ancora il nome del file... (senza scrivergli sopra)

ci sono altri modi?
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 07-07-2004, 11.56.53   #4
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Si .. questo era un modo .. altro modo era utilizzare la chiamata di sistema "stat()"

http://www.scit.wlv.ac.uk/~jphb/spos...stat.html#stat

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 07-07-2004, 11.57.08   #5
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Si, la struttura di fopen è questa:

FILE *fopen( const char *filename, const char *mode );

il primo parametro è il nome del file, il secondo è il modo di accesso, se specifichi a+ il file può essere letto e scritto, ma la scrittura avviene solo a iniziare dalla fine del file.
Se il file non esiste viene creato.
Alhazred non è collegato   Rispondi citando
Vecchio 07-07-2004, 12.09.31   #6
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
grazie ragazzi...
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 07-07-2004, 12.37.49   #7
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
tutto ok... solo una cosa non riesco a controllare...

se il nome del file inserito dall'utente contiene caratteri non validi, il file non viene creato, come posso intercettare questo errore?
magari evitando lo switch dei caratteri inseriti o il controllo uno ad uno dell'array di caratteri...
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 07-07-2004, 12.44.59   #8
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Queste funzioni possono essere monitorate molto più approfonditamente .. rispetto al semplice controllo del return != NULL, esse valorizzano "errno()" secondo una delle costanti predefinite nell'header <errno.h>, una di queste costanti può fare al caso tuo per verificare che la modalità di apertura del file non sia errata.

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 07-07-2004, 12.45.36   #9
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
per info su errno:

http://www.opengroup.org/onlinepubs/...s/errno.h.html

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 07-07-2004, 12.59.59   #10
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
per provare ho sostituito:

Codice:
while((ptrFile = fopen(nomeFile,"r")) != NULL){

con

while((ptrFile = fopen(nomeFile,"r")) == EEXIST){
perchè non funziona? come devo fare il controllo?
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 07-07-2004, 15.16.23   #11
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
cosa vuol dire?

Codice:
The ISO C standard only requires the symbols [EDOM], [EILSEQ], and [ERANGE] to be defined.
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 08-07-2004, 08.58.51   #12
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Quota:
NS-1 ha scritto:
per provare ho sostituito:

Codice:
while((ptrFile = fopen(nomeFile,"r")) != NULL){

con

while((ptrFile = fopen(nomeFile,"r")) == EEXIST){
perchè non funziona? come devo fare il controllo?
Con questa sintassi tu provi ciclicamente ad aprire un file, riassegnando ogni volta il puntatore .. è estremamente inefficiente e pericolosa .. inoltre nel secondo caso non funziona perché il ptrFile non può avere valore di EEXIST....

Un puntatore può contenere un indirizzo di memoria oppure NULL e non può avere altro valore .. quindi la condizione del while non è mai soddisfatta causando un ciclo infinito.

Devi leggere "errno()" che viene valorizzata a seconda delle costanti elencate .. è qui che le funzioni "depositano" il loro risultato ed errno() ti permette di leggerlo

Codice:
if((ptrFile = fopen(nomeFile,"w")) != NULL) 
{
   if(errno() == EEXIST)
   {
      printf("File già esistente");
   }
}
Nell'esempio ho cambiato "r" con "w" per un semplice motivo:
se il file viene aperto per lettura è già implicito che esista, altrimenti ptfFile avrebbe il valore NULL ed errno sarebbe valorizzata come ENOENT (se non ricordo male)...

Bye

Ultima modifica di P8257 WebMaster : 08-07-2004 alle ore 10.00.13
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 08-07-2004, 09.02.42   #13
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
grazie...

ma, posso sapere dove avete imparato tutte queste cose? internet, libri e lavoro?


ciao

Ns-1
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 08-07-2004, 09.03.12   #14
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Quota:
NS-1 ha scritto:
cosa vuol dire?

Codice:
The ISO C standard only requires the symbols [EDOM], [EILSEQ], and [ERANGE] to be defined.
Una notazione di cui, a parer mio, puoi altamente fregartene .. dice che lo standard ISO di C prevede la ridefinizione di queste costanti ... che dovresti fare manualmente

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 08-07-2004, 09.04.59   #15
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Quota:
NS-1 ha scritto:
grazie...

ma, posso sapere dove avete imparato tutte queste cose? internet, libri e lavoro?


ciao

Ns-1
Gaurda, personalmente lo faccio per professione e per passione .. quindi .. volente o nolente ..

Bye
P8257 WebMaster non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Windows security alert imothep Sicurezza&Privacy 19 07-10-2007 14.58.43
[XP] Problemi struttura file roby89 Windows 7/Vista/XP/ 2003 0 28-08-2006 19.06.35
Uno strano file word Cecco Sicurezza&Privacy 44 05-04-2006 17.45.05
[Windows XP] Problemi con il masterizzatore DVD Qgino Hardware e Overclock 13 16-10-2005 20.11.45
problema con file .doc rovinato in office xp 2003...poi risolto... cippico Office suite 0 30-04-2004 09.12.07

Orario GMT +2. Ora sono le: 08.22.32.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.