PDA

Visualizza la versione completa : Gestione File in C


Fla@sh_b
15-12-2003, 23:08
Ciao a tutti :D.
Ho un problema con un programma che stò scrivendo... :confused:

Il programma in questione sfrutta una struttura dati del tipo:

typedef struct {
char Film_title[Max_Name_length];
int film_length;
int quality;
int flag;
} film_record;

film_record Data[50]

(Tralasciando le varie dichiarazioni...)

Ed è progettato per gestire un piccolo database contenente le schede di vari film.
Prima di terminare la sua esecuzione il programma salva i dati acquisiti in un file .txt del tipo:

Film N.0
Title: Guerre stellari
Length: 120
Quality: 5

Film N.1
Title: Altro_nome_film
Length: 120
Quality: 5

...

Ecco il dilemma: :master:
Come fare a fargli acquisire all'avvio i dati contenuti in questo file di testo in memoria, in modo da averli disponibili durante l'esecuzione del programma???
Ho provato con fscanf() e con getc() ma purtroppo il programma non funziona come vorrei...
Guerre stellari dovrebbe essere caricato in Data[0].Film_title senza la stringa Title presente nel file di testo.
C'è qualcosa che mi sfugge ed il manuale non mi è d'aiuto.
Help me plz. :adhone:

Johnny_Depp
15-12-2003, 23:25
semplicemente non inserendo il titolo dei campi prima del valore
nel file di testo...

invece di registrare nel .txt

TITLE: guerre stellari

salva soltanto

guerre stellari

tanto il programma (visto che lo stai scrivendo tu) saprà già che ogni tot. righe del file ci sarà sempre registrato un dato di tipo TITOLO ecc... ecc... ecc...




Altrimenti, utilizzi una funzione che splitta il titolo, togliendo
il prefisso (nome del campo) dal titolo, ma così ti complicherai di non poco la stesura del programma.

Leevon
15-12-2003, 23:44
Si ma se lui ha quella formattazione non ha senso fargliela cambiare...E poi una funzione che splitta il tiotlo non è affatto complicata, anche se con un file binario sarebbe più semplice, bsterebbe saltare il numero giusto di byte nella lettura,non so se si può fare anche con un file di testo, ma comunque basta lavorare con la stringa che aqcuisisci con fscanf....

Fla@sh_b
16-12-2003, 15:41
Grazie mille per la risposta. :p
In effetti come dice Johnny_Depp, non inserire Title semplifica molto il codice. :)
Però speravo di creare un file txt facilmente leggibile ed ordinato in modo da poter essere letto facilmente anche da un utente. :ciauz:

Luc@s
16-12-2003, 16:31
dicci poi come hai risolto che è interesting :)

Loading