Mak (Normal User)
Rookie
Messaggi: 23
Iscritto: 17/08/2008
|
Come avrete visto nel mio topic precedente, sto seguendo la guida sul Pascal che si trova su questo sito.
Nel capitolo 7 c'è questo codice:
Codice sorgente - presumibilmente Delphi |
Program Esempio2; Uses Crt,WinDos; Var nome1,nome2,stringa:string; file1,file2:text; begin clrscr; write(‘Inserire il nome di un file: ‘); readln(nome1); write(‘Inserire il nome del file copia: ‘); readln(nome2); Assign(file1,nome1); Assign(file2,nome2); Reset(file1); Rewrite(file2); repeat readln(file1,stringa); writeln(file2,stringa); until eof(file1); Close(file1); Close(file2); writeln(‘Copia completata!’); readln end.
|
ma quando lo eseguo, inserisco il nome del file e il nome del file copia, ma dopo questi 2 passaggi, il programma si chiude ed esce "Error 2: File not found." con il cursore che lampeggia all'inizio della stringa
Codice sorgente - presumibilmente Plain Text |
cosa c'è di sbagliato? |
|
John (Ex-Member)
Pro
Messaggi: 191
Iscritto: 18/11/2007
|
sei sicuro di aver scritto esatto il nome del file (compresa estensione e considerato la cartella in cui si trova)
è l'unico errore possibile....
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
jhon ha ragione..
ho provato io il codice e funziona.. devi solo mettere tutto il percorso...
oppure se non vuoi mettere il percorso, ma per esempio se il file da leggere sta nella stessa cartella dell'eseguibile, prima devi far salvare l'eseguibile.. cliccando su compile-->destination memory
cosi diventa "destination disk" e una volta che lo fai partire puoi scrivere semplicemente il nome del file senza tutto il percorso (purchè il file sia nella stessa cartella del programma)
|
|
Mak (Normal User)
Rookie
Messaggi: 23
Iscritto: 17/08/2008
|
Grazie, ma a me l'errore esce quando premo "Run".
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
non è possibile...XD
|
|
Mak (Normal User)
Rookie
Messaggi: 23
Iscritto: 17/08/2008
|
Uhm... forse sto cominciando a capire
comunque,se avete un po' di pazienza, potreste spiegarmi come funziona questo programma? Grazie
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
prima chiede di inserire il file che si vuole copiare
poi chiede di inserire il nome del file da creare (la copia)
e poi tramite il ciclo repeat until
copia riga per riga tutte le righe del primo file nel secondo file
se ancora non hai capito.. te lo posso commentare riga per riga
Ultima modifica effettuata da Anonymous il 17/09/2008 alle 15:40 |
|
gigisoft (Normal User)
Newbie
Messaggi: 2
Iscritto: 09/10/2008
|
Postato originariamente da Mak:
Come avrete visto nel mio topic precedente, sto seguendo la guida sul Pascal che si trova su questo sito.
Nel capitolo 7 c'è questo codice:
Codice sorgente - presumibilmente Delphi |
Program Esempio2; Uses Crt,WinDos; Var nome1,nome2,stringa:string; file1,file2:text; begin clrscr; write(‘Inserire il nome di un file: ‘); readln(nome1); write(‘Inserire il nome del file copia: ‘); readln(nome2); Assign(file1,nome1); Assign(file2,nome2); Reset(file1); Rewrite(file2); repeat readln(file1,stringa); writeln(file2,stringa); until eof(file1); Close(file1); Close(file2); writeln(‘Copia completata!’); readln end.
|
ma quando lo eseguo, inserisco il nome del file e il nome del file copia, ma dopo questi 2 passaggi, il programma si chiude ed esce "Error 2: File not found." con il cursore che lampeggia all'inizio della stringa
Codice sorgente - presumibilmente Plain Text |
cosa c'è di sbagliato? |
l'errore consiste nel fatto che la 'reset' pretende che il file esista già, per cui il nome che hai inserito per il file 'file1' non è corretto ( il problema potrebbe essere anche sul path ).
Inoltre vorrei darti un consiglio, per una maggiore chiarezza è meglio trattare una cosa alla volta, per cui è preferibile avere:
[...]
write(‘Inserire il nome di un file: ‘);
readln(nome1);
Assign(file1,nome1);
Reset(file1);
write(‘Inserire il nome del file copia: ‘);
readln(nome2);
Assign(file2,nome2);
Rewrite(file2);
[...]
Ciao.
Luigi |
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
Postato originariamente da gigisoft:
l'errore consiste nel fatto che la 'reset' pretende che il file esista già, per cui il nome che hai inserito per il file 'file1' non è corretto ( il problema potrebbe essere anche sul path ).
|
non è vero.. perchè infatti lui prima di scrivere reset (file1) lo aveva creato con l'operazione assignfile(file1,blabla)
quindi la sintassi è corretta e non ci sono errori di compilazione...
infatti come ho detto io l'ho compilato e testato.. e funzionava..
l'errore era solo quello della path sbagliata |
|