Newsgroup: it.comp.lang.pascal
Titolo: Rinominare un file

Come posso rinominare un file da dentro un mio programma in Turbo
Pascal 7? Non dovro' mica riscriverlo con il secondo nome, spero...
:))))
Regards,
        Cassa
[
http://www.geocities.com/TimesSquare/5167
, ICQ 9016231]


Si puo' fare. Eccoti un programma di prova:
program rename_file;
var     f:file of byte;
        s1,s2:string;
begin
        write('Old Name: '); readln(s1);
        writeln;
        write('New Name: '); readln(s2);
        assign(f,s1);
        rename(f,s2)
end.
Ciao,    Fabio
fabi...@rocketmail.com


Se nno trovi altro certo che si... :-)))
Ma dovrebbe esserci una procedure Ren oppure Rename (unit DOS)
In alternativa lanci un exec :-)
Ciao
Emanuele Cesena
d.a.m...@iol.it
ICQ n° #10570672

:))))
L'esempio di Fabio va benissimo. Ricorda solo che al momento della rinomina
del file, questo deve essere obbligatoriamente chiuso.
Ciao
  Carlo


Mi dispiace ma il prog. funziona bene cosi'. Prima di postarlo e'
stato provato.
Il file non va chiuso perche' non e' stato aperto.
Nel caso io apro un file (con reset o rewrite) per poter fare delle
letture o modifice, prima di poterlo rinominare lo devo chiudere.
Guarda l'Help con la voce Rename e vedrai che ho ragione.
Caio,  Fabio
fabi...@rocketmail.com

stato provato.
Non mi sembra di aver detto che il tuo programma non funziona. Anzi ho
scritto che va benissimo. Ho voluto solo sottolineare che il file deve
essere chiuso. Un'esempio non puo' bastare a mettere in risalto condizioni
fondamentali per il funzionamento di una procedura. Prova a completare
l'esempio con due righe di commento la prossima volta.
Ciao
  Carlo


Io non mi ero minimamente risentito dell'appunto che mi avevi fatto,
era solo che volevo capire meglio.
Non ho commentato il prog. perche' era talmente corto e semplice che
non l'avevo ritenuto necessario.
Per concludere la cosa mi farebbe piacere sapere come dovrebbe essere
la versione corretta della procedura.
Io ho provato a mettere una CLOSE(F) per chiudere il file, come avevi
detto tu, dopo RENAME(..) ma durante l'esecuzione il programma si
blocca dandomi un errore sull'estruzione CLOSE dicendomi che il file
non era stato aperto.
Fammi sapere come dovrebbe essere per te la procedura corretta.
Ciao,   Fabio.
fabi...@rocketmail.com


fabi...@rocketmail.com


E soprattutto se vuoi chiudere un file devi chiuderlo PRIMA di
rinominarlo... :-)
Emanuele Cesena
d.a.m...@iol.it
ICQ n° #10570672
"Un generatore di numeri casuali non puo' essere scelto a caso", Knuth

Riformulo il tutto:
Procedura per la rinomina di un file:
Procedure RINOMINA(n1,n2:string);
var	f:file of byte;
begin
	assign (f,n1);
	rename(f,n2)
end;
Questa procedura rinomina un file di nome 'n1' con il nuovo nome 'n2'.
Condizioni NECESSARIE e SUFFICIENTI per il suo funzionamento sono:
1) in file 'n1' non deve essere in uso, ovvero non deve essere aperto.
2) in file 'n2' non deve esistere. Se il file 'n2' esiste deve essere
prima eliminato.
Il file 'f' non deve essere obbligatoriamente chiuso perche' puo'
essere anche che non e' stato aperto. Se il file e' aperto non puo'
essere rinominato e quindi prima deve essere chiuso.
Ne programma che avevo postato all'inizio del thread il file non
doveva essere chiuso perche' non era stato assolutamente aperto.
Aspetto commenti.
Ciao,   Fabio.
fabi...@rocketmail.com


Nessun commento.... se non: perfetto!! :-)
Il mio era solo un appunto: prima si chiude il file (se necessario), poi lo
si rinomina.
Avevi scritto (probabilmente per errore di distrazione) che se mettevi DOPO
un close non andava: per forza :-)
Ciao


Spiegazione perfetta.
Ciao
Carlo