[C] Gestione file

Angela931
Salve a tutti, avrei un problema con esercizi di esame del mio corso di fondamenti di informatica, qui di seguito:



in generale so come utilizzare i file, il mio problema si pone nei casi come questi in cui devo gestire un certo numero di elementi per un certo numero di volte (in questo caso gli ordini nei vari giorni) senza poter usare una tabella in memoria centrale (che tra l'altro in questo caso non so se sarebbe utile visto che gli ordini sono "massimo 200" mentre in altri esercizi dava numeri precisi) ma solo una struct per buffer I/O, almeno così io ho inteso dalla nota alla fine della traccia. La difficoltà più grande mi si pone soprattutto nello strutturare l'ordinamento

Se qualcuno potesse instradarmi o tipo svolgermi almeno un dei punti così magari prendendo spunto dalla logica usata posso provare a svilupparli io e postarli per eventuali correzioni, gliene sarei molto grata :)

ps: non mi sono presentata perchè avevo già un account e ho avuto difficoltà nell'accedervi, avendo urgente bisogno di assistenza, l'esame è il 25, mi sono iscritta nuovamente

Risposte
vict85
Se mandi un messaggio all'amministratore dicendo il tuo vecchio account e che problemi riscontri potrebbe aiutarti a risolverli (previo controllo che le identità corrispondano).

Riguardo al tuo problema trovo sinceramente poco sensato non usare una tabella :D (caricare in un array e invertire l'array è più veloce che caricare e scrivere ogni singolo elemento da e per un file). Ma se proprio ne devi fare a meno puoi scorrere il file al contrario.

apatriarca
Con un corretto uso di ftell, fseek, fread e fwrite è possibile lavorare con un file "quasi" come se fosse un blocco di memoria. Il trucco sta in un certo senso nel prepararsi funzioni opportune e di avere il file organizzato in un modo particolare. Per poter ordinare il file è comunque necessario fare uso di almeno un paio di strutture caricate in memoria (per poter effettuare confronti). Ma non credo ti stia chiedendo di effettuarr un ordinamento. Credo voglia semplicemente che ti sposti con fseek partendo dalla fine del file e andando indietro di una struttura per volta o qualcosa del genere. L'uso di una tabella ad inizio file con i rispettivi offset a cui andare a leggere i diversi giorni sarebbe ovviamente ancora meglio..

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.