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
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