Creare una lista da file in C

di il
3 risposte

Creare una lista da file in C

Ciao a tutti vi spiego cosa devo fare:
Devo caricare un file dove sono contenuti i dati delle auto: modello, data, ora, targa,lettera parcheggio, numero parcheggio.

Ho deciso che nel file saranno scritte in questo modo per ogni auto (cioè per ogni riga):

Es:
Lancia Y:29022013:1120:aa123bb:L:25
Alfa Romeo Mito:10011012:1230:aa124bb:H:25
.....

utilizzando ":" come separatore tra i campi

Devo usare una lista (spero sia corretto):
typedef list {
	char modello[30];
	char data[8];
        char ora[4];
	char targa[7];
	int lett_p;
	int num_p;
	struct list *next;
} auto;
Ogni elemento della lista conterrebbe i campi

1° elemento (1^ riga file): modello,data,ora,targa,lett_p,num_p ---NEXT--->
2° elemento (2^ riga file): --->modello,data,ora,targa,lett_p,num_p ---NEXT--->

...............

n° elemento (ultima riga file): --->modello,data,ora,targa,lett_p,num_p NULL

Dovrei caricare il file e creare la lista.

Nel main è giusto scrivere:

FILE *fp;
test t;

	if (!(fp=fopen(USER_FILE,"r")) ) {
		printf ("Errore: impossibile aprire il file %s\n",USER_FILE);
		exit(1);
	}
Non so come creare la lista dal file tenendo conto anche del carattere di separazione ":" tra i campi. Qualcuno mi saprebbe dare una dritta per iniziare? Spero che vi sia chiaro quello che voglio fare.

Vi ringrazio

3 Risposte

  • Re: Creare una lista da file in C

    Mettere il separatore ":" è una cosa scomoda perchè dovresti in qualche modo acquisirlo ad ogni sua occorrenza. E' sufficiente utilizzare un carattere di spazio tra un dato e l'altro. Invece per quanto riguarda il fatto delle righe è indifferente, potresti fare anche una sola lunghissima riga, non è importante.
  • Re: Creare una lista da file in C

    Ciao iso, grazie della risposta, un separatore per me ci deve essere, il semplice spazio non credo vada bene perché un campo potrebbe essere scritto con lo spazio (come ho scritto nell'esempio).
    Stavo pensando di leggere la riga come stringa contenente anche spazi, sto cercando di capire come inserire i singoli campi della struct come elemento della lista.

    Ciao, grazie
  • Re: Creare una lista da file in C

    Metti un dato per riga. Quando leggi una stringa lunga N, lui legge i primi N caratteri, anche se ci sono spazi in mezzo.
Devi accedere o registrarti per scrivere nel forum
3 risposte