Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Verificare esistenza file
Forum - Pascal - Verificare esistenza file

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Come si può fare per verificare se esiste un file??

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:07
Domenica, 21/03/2010
Il nome del file è assegnato nel programma, o è deciso in esecuzione?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:17
Domenica, 21/03/2010
È già assegnato.

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 12:34
Lunedì, 22/03/2010
Testo quotato

Postato originariamente da Giarados:

Come si può fare per verificare se esiste un file??



Salve,
il metodo che usavo io a suo tempo era il seguente:
1) Disabilitare il blocco del compilatore sugli errori di I/O con la direttiva:

Codice sorgente - presumibilmente Plain Text

  1. {$I-}



2) Tentare di aprire il file;

3) Riabilitare il blocco del compilatore sugli errori di I/O con la direttiva:

Codice sorgente - presumibilmente Plain Text

  1. {$I+}



4) Se l'operazione non e' andata a buon fine, il compilatore non blocca l'esecuzione, ma assegna alla variabile d'ambiente IOResult un valore diverso da 0, se invece il valore della variabile viene messo a 0 allora l'operazione e' riuscita ( e di conseguenza il file esiste ).

Ciao :k:

Luigi

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:16
Lunedì, 22/03/2010
Mi dispiace :( ma non capisco :(

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 20:56
Lunedì, 22/03/2010
Caspita, gigisoft ha ragione!

Prova questo programma:

Codice sorgente - presumibilmente Delphi

  1. program CercaFile;
  2. uses crt;
  3. type tsms=string[180];
  4. var percorso,NomeFile:tsms;
  5.    
  6. function cerca(g:tsms):boolean;
  7. var f:text;
  8.     ch:boolean;
  9. begin
  10.  {$I-}  { disinserisco il blocco degli errori }
  11.  assign(f, g);
  12.  reset(f); { tento di riaprire il file }
  13.  {$I+}  { ripristino il blocco degli errori}
  14.  if IOresult=0 then  { verifico l' apertura del file }
  15.  begin
  16.   ch:=true;
  17.   close(f);  
  18.  end
  19.  else ch:=false;
  20.  cerca:=ch;
  21. end;
  22.  
  23. begin
  24.  GetDir(0, percorso);
  25.  write('Quale file cerchi ? ');
  26.  readln(NomeFile);
  27.  if cerca(percorso+'\'+NomeFile) then writeln('File trovato ')
  28.  else writeln('File non trovato');
  29.  readln;
  30. end.


Ultima modifica effettuata da Poggi Marco il 22/03/2010 alle 20:58
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:08
Lunedì, 22/03/2010
Ok, adesso ho capito, grazie ;) mi serviva per inizializzare i file di configurazione di snake :D

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 17:40
Venerdì, 26/03/2010

Grazie a Gigi. Quello che ha postato mi sarà utilissimo per molti programmi.

Comunque è possibile usare anche le funzioni della unit DOS (ci sono anche in sysutils anche se cambiano nome).

FindFirst(nome, anyfile, <variabile SearchRec>;);
se (DosError<>0) allora il file non esiste.
Oppure FileExist

PM Quote