Oppure

Loading
09/10/08 17:22
Anonymous
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
aaa
10/10/08 7:38
WARRIOR
Postato originariamente da Anonymous:

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


Infatti, se ha sbagliato il path, la funzione reset non va a buon fine e lancia un errore di run-time (vuole che il file esista già;) , quindi Luigi ha detto una cosa giusta.
Nel caso in cui si volesse utilizzare la funzione reset, è consigliabile disabilitare gli errori di I/O ({I-}), chiamare la funzione e verificare la riuscita dell'operazione tramite la variabile IORESULT, dal valore di quest'ultima si può agire di conseguenza andando avanti, oppure creando un nuovo file.
Per quanto ne so io, la funzione assing non restituisce un puntatore che può non recuperare un riferimento, ma inserisce soltanto il path nella variabile che le viene passata, non crea alcun file.

;)
Ultima modifica effettuata da WARRIOR 10/10/08 7:42
aaa
10/10/08 16:26
Mak
Postato originariamente da Anonymous:se ancora non hai capito.. te lo posso commentare riga per riga
Beh, se magari hai un po' di tempo... 8-|
ho letto anche le nuove risposte, ma non ci ho capito molto, poi avevo messo da parte per un po' questo programma...
aaa
10/10/08 18:12
Anonymous
Postato originariamente da WARRIOR:

Postato originariamente da Anonymous:

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


Infatti, se ha sbagliato il path, la funzione reset non va a buon fine e lancia un errore di run-time (vuole che il file esista già;) , quindi Luigi ha detto una cosa giusta.
Nel caso in cui si volesse utilizzare la funzione reset, è consigliabile disabilitare gli errori di I/O ({I-}), chiamare la funzione e verificare la riuscita dell'operazione tramite la variabile IORESULT, dal valore di quest'ultima si può agire di conseguenza andando avanti, oppure creando un nuovo file.
Per quanto ne so io, la funzione assing non restituisce un puntatore che può non recuperare un riferimento, ma inserisce soltanto il path nella variabile che le viene passata, non crea alcun file.

;)



si scusate.. non so quello che mi ero fumato.. l'istruzione assign non crea il file..
va beh.. in pratica volevo dire che cmq il comando reset non è un errore perchè cmq basta inserire la path giusta di un file esistente e il programma funziona... al limite ci si deve mettere una istruzione che prima di fargli leggere il file, gli faccia controllare se la path immessa dall'utente è giusta....

cmq si.. rileggendo quello che aveva scritto gigi, mi accorgo che cmq prima avevo anche male interpretato quello che aveva detto..

cmq rispondendo a mak

allora.. il codice riga per riga sarebbe:

...
    clrscr; //pulisci lo schermo
    write(‘Inserire il nome di un file: ‘); //scrivi su schermo la frase tra apici
    readln(nome1); //leggi ciò che viene digitato dall'utente e inseriscilo nella variabile nome1
    write(‘Inserire il nome del file copia: ‘);//scrivi su schermo la frase tra apici
    readln(nome2); //leggi ciò che viene digitato dall'utente e inseriscilo nella variabile nome2
    Assign(file1,nome1);//assegna alla variabile file1 il nome della path contenuta nella variabile nome1
    Assign(file2,nome2);assegna alla variabile file1 il nome della path contenuta nella variabile nome1
    Reset(file1); //prepara alla lettura il file che è stato assegnato alla variabile file1
    Rewrite(file2);//prepara alla scrittura il file che è stato assegnato alla variabile file1
    repeat //dopodichè ripeti le seguenti istruzioni:
    readln(file1,stringa); //leggi una intera riga del file assegnato alla variabile file1, e inseriscila nella variabile stringa
    writeln(file2,stringa);//scrivi nel file assegnato alla variabile file2, il contenuto della variabile stringa
    until eof(file1); //ripeto tutto ciò fino a che non si è arrivata all'ultima riga del file 1 (quindi ogni volta che ripete il ciclo, copia la riga successiva a quella che aveva già copiato)
    Close(file1);//disimpegna il file1
    Close(file2); disimpegna il file2
    writeln(‘Copia completata!’); //scrivi sullo schermo che la copia è stata completata
    readln
...
Ultima modifica effettuata da Anonymous 10/10/08 18:15
aaa