|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
Visual studio rename e remove
Ho problemi con il rename e il remove, non funzionano posto il codice:
Codice:
while(remove("ElencoTelefonico.txt") == -1){
printf("\nErrore remove\n");
chiusuraServer();
}
/* Rinomino il file "temp.txt" */
while(rename("temp.txt", "ElencoTelefonico.txt") == -1){
printf("\nErrore rename\n");
chiusuraServer();
}
|
|
|
|
|
|
#2 | |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
Quote:
prima chiudo i file, puo darsi che è Windows 8 che non mi permette di farlo? |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
Si è nella stessa cartella dell'eseguibile, comunque prima faccio una scrittura e funziona correttamente, quindi il file viene aperto poi chiudo e non cancella. ho provato anche con system ("del ElencoTeleonico") e mi dice che il file è in esecuzione ed è impossibile aprirlo.
stessa cosa per rename |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Premesso che Visual Studio è un IDE (e quindi nel titolo dovresti inserire Visual C++), il codice funziona regolarmente, ovviamente, a patto che nella stessa cartella esistano i due file ElencoTelefonico.txt e temp.txt e siano tutti e due chiusi.
Per completezza, mostra anche il codice che precede questo ... quello in cui apri e, soprattutto, chiudi i due file. |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
Codice:
int cancellaRecord(Record record){
Record recordTemp;
/* Resetto i valori della struct recordTemp */
memset(recordTemp.nome, 0, sizeof(recordTemp.nome));
memset(recordTemp.cognome, 0, sizeof(recordTemp.cognome));
memset(recordTemp.numeroTelefono, 0, sizeof(recordTemp.numeroTelefono));
FILE *temp;
/* Apertura dell'archivio "ElencoTelefonico.txt" */
if(( ElencoTelefonico = fopen("ElencoTelefonico.txt", "r")) == NULL){
printf("\nNon è possibile aprire l'elenco telefonico, verificare la consistenza dell'archivio\n");
chiusuraServer();
}
else{
/* Apertura di un file temporaneo nel quale copiare l'archivio */
if(( temp = fopen("temp.txt", "w")) == NULL){
printf("\nImpossibile creare file temporaneo...\n\n");
chiusuraServer();
}
else{
/* Copio tutti i record dell'archivio escludendone quello da eliminare */
while(fscanf(ElencoTelefonico, "%s %s %s", recordTemp.nome, recordTemp.cognome, recordTemp.numeroTelefono) == -1){
printf("\nErrore fscanf\n");
chiusuraServer();
}
while(!feof(ElencoTelefonico)){
if((strcmp(record.nome, recordTemp.nome) != 0) && (strcmp(record.cognome, recordTemp.cognome) != 0)!=1){
while(fscanf(ElencoTelefonico, "%s %s %s", recordTemp.nome, recordTemp.cognome, recordTemp.numeroTelefono) == -1){
printf("\nErrore fscanf\n");
chiusuraServer();
}
}
else{
fprintf( temp, "%s %s %s\n", recordTemp.nome, recordTemp.cognome, recordTemp.numeroTelefono);
while(fscanf(ElencoTelefonico, "%s %s %s", recordTemp.nome, recordTemp.cognome, recordTemp.numeroTelefono) != -1){
printf("1");
printf("\nErrore fscanf\n");
chiusuraServer();
}
}
}
/* Chiusura dei file */
while(fclose(ElencoTelefonico) != 0){
printf("\nErrore fclose\n");
chiusuraServer();
}
while(fclose(temp) != 0){
printf("\nErrore fclose\n");
chiusuraServer();
}
/* Eliminazione del file ElencoTelefonico.txt */
while(remove("ElencoTelefonico.txt") == -1){
printf("\nErrore remove\n");
chiusuraServer();
}
/* Rinomino il file "temp.txt" */
while(rename("temp.txt", "ElencoTelefonico.txt") == -1){
printf("\nErrore rename\n");
chiusuraServer();
}
}
return 1;
}
return -1;
}
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Premesso che il codice che hai scritto è veramente strano (con tutti quei while essenzialmente inutili), comunque c'è un
== -1){ al posto di un != -1){ in una linea ... |
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
conclude ma non cancella
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
mi dice che cancella , ma non cancella
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
A me funziona ... ho provato con un codice più semplice, senza tutte quelle while ma con delle semplici if e lavora correttamente.
|
|
|
|
|
|
#12 |
|
Junior Member
Iscritto dal: Mar 2013
Messaggi: 23
|
con quale sistema operativo le stai provando?
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Non è importante ... comunque XP ... ti ripeto, un codice diverso dal tuo, senza tutte quelle while ...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:26.




















