PDA

Visualizza la versione completa : [DELPHI] File non trovato su chiamata a funzione Reset()


gorn
29-06-2010, 12:01
salve a tutti... sono nuovo e porto con me molti problemi....XD
sto creando un programma che acquisisca in un file (a cui è associato un record) dei dati.
il mio problema compare quando tento di salvare i dati nel file o meglio quando tento di aprire il file.
sto usando una unit che contiene una funzione dedita al controllo dell'esistenza del suddetto file e un procedura che... faccio prima a postarlo..XD


Procedure caricast;
Begin
assignfile(stampanti,'stampanti.dat');
reset(stampanti);
seek(stampanti,filesize(stampanti));
write(stampanti,buf);
closefile(stampanti);
End;

ora quando vado nel codice della form a richiamare la procedura caricast per scrivere sul file mi viene dato l'errore 'File not found'.....
forse è una domada stupida ma spero in una vostra risposta.....
grz in anticipo a tutti coloro che mi risponderanno

gorn
29-06-2010, 12:05
preciso che il problema si concentra sul

reset(stampanti);
della procedura caricast

LeleFT
29-06-2010, 14:43
Reset si usa per aprire i file in lettura (che deve quindi esistere).
Per aprire un file in scrittura si usa ReWrite.

Non ho capito se quella funzione di controllo esistenza del file viene usata o meno e, in ogni caso, come viene usata... dal codice che hai postato si vede che stai cercando di aprire il file in lettura (o sovrascrittura) per poi scriverci dentro e, a quanto pare, il file non esiste.


Ciao. :ciauz:

gorn
29-06-2010, 15:11
cerco di spiegarmi meglio......
il codice nella unit è


function esiste(var stampanti:stam):boolean;
procedure caricast(var stampanti:stam; var buf:sta);

implementation
(*PARTE DELLE STAMPANTI*)
Function esiste;
Begin
{$I-}
rewrite(stampanti);
{$I+}
if ioresult=0 then esiste:=true
else esiste:=false;
end;
Procedure caricast;
Begin

assignfile(stampanti,'stampanti.dat');
reset(stampanti);
seek(stampanti,filesize(stampanti));
write(stampanti,buf);
closefile(stampanti);

End;


quando nella parte di codice della form richiamo la procedura caricast per memorizzare i dati viene dato l'errore "File not Found"...
per quanto riguarda il rewrite non credo sia la soluzione poiche io non voglio riscrivere il file (cancellando cio che era presente) ma aggiungere dati (forse devo usare append? se si per evitare di aggiungere dati sempre alla fine del file mi basta usare il seek?)

gorn
30-06-2010, 15:07
possibile che nessuno sappia risolvere questo problema? :cry: :master: :nonono:
Avete risolto problemi piu difficili... datemi una mano.... io nn capisco perchè non funziona..

alka
13-07-2010, 13:42
A mio avviso, se l'errore è File not found, lo interpreterei come tale, cioè che il file non viene trovato.

Può essere dovuto a molteplici fattori; ad esempio, il file potrebbe essere creato con un percorso relativo che si traduce nella scrittura in un percorso diverso nelle varie esecuzioni del programma, oppure può accadere che - su sistemi Vista e successivi - il file venga scritto nella cartella dei dati per la virtualizzazione del processo, mentre il programma cerca di caricarlo sempre dalla locazione dell'eseguibile, non trovandolo.

E' necessario specificare queste informazioni per poter approfondire la questione. :stordita:

Loading