Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Output di Liste su File
Forum - C/C++ - Output di Liste su File - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
ManfroC (Ex-Member)
Rookie


Messaggi: 26
Iscritto: 15/05/2011

Segnala al moderatore
Postato alle 20:09
Sabato, 28/05/2011
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

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo