Oppure

Loading
21/05/11 20:29
Peppe91
No ma non è un problema di codice. A scrivere me lo scrive bene. Adesso ho bisogno di un'idea di come far leggere tutto. Xchè quando scrivo una struttura su file i puntatori, dopo la lettura, non hanno lo stesso valore.
aaa
28/05/11 18:09
ManfroC
se ti può essere utile questo è un ordinamento su file.

void Manfro_Sort(FILE *dat) //ordina le strutture su un file però le strutture non sono salvate su un vettore di struct allora è li il difficile

{//fa dei controlli in più perchè con la scrittura sposta il puntatore e crea una nuova posizione

dat = fopen("dati.dat","r+b";);

struct persona E;

fseek(dat,0,2);

long D=ftell(dat)/sizeof(struct persona);

long i;

fclose(dat);

for(i=0;i<D-1;i++)

{ dat = fopen("dati.dat","r+b";);

while(!feof(dat))

{



fread(&P,sizeof(P),1,dat);

fread(&E,sizeof(P),1,dat);

if(strcmp(P.nome,E.nome)>0)

{

fseek(dat,-2*(sizeof(P)),1);

fwrite(&E,sizeof(P),1,dat);

fwrite(&P,sizeof(P),1,dat);

fseek(dat,-(sizeof(P)),1);



}

fread(&E,sizeof(P),1,dat);

if (feof(dat) ) break;

fseek(dat,-2*sizeof(struct persona),1);

}

fclose(dat);

}

fclose(dat);

return;

}



altrimenti puoi copiare struttura per struttura su un vettore di strutture d'appoggio,riordini il vettore di strutture d'appoggio,e poi stampi su un nuovo file ,che poi andrai a rinominare con il nome opportuno,
il vettore di strutture ordinato
aaa