|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
[C] Progetto database
Ciao a tutti!!
Devo creare una funzione ReadRecord() che legge alcuni campi da un determinato record. Le specifiche della funzione (e di altre che dovrò sviluppare in questo modulo) sono qui: http://twiki.dsi.uniroma1.it/pub/Lab...l/modules.html FieldValue è una struttura definita in questo modo: Codice:
typedef struct {
char Name[FIELD_NAME_LENGTH+1]; //!< Nome del campo
void *value; //!< Valore del campo
} FIELD_VALUE_t;
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
perché un puntatore void ? ti complichi la vita cosí come la useresti questa struttura ? ps: non ci posso andare sul sito che hai postato per "politiche aziendali"
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
La struttura è per forza così, non l'ho creata io. E' richiesta dalle specifiche in questo modo. Dicono che visto che è void posso metterci qualsiasi valore. Questa contiene praticamente i nomi dei campi che dovrò andare a leggere e nel campo value dovrò mettere il valore del relativo campo. Su quel sito c'è scritto tutto in dettaglio, l'ho postato proprio per non scrivere tutto qua.
|
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Forse qualcuno mi correggerá ma mi sembra assurdo fare un record cosí! Sarebbe meglio una struttura a lunghezza fissa: Codice:
typedef struct {
char Name [FIELD_NAME_LENGTH+1]; //!< Nome del campo
char Value[ VALUE_LENGTH+1]; //!< Valore del campo
} FIELD_VALUE_t;
Il vantaggio della struttura fissa é che con le funzioni fread(...) e fwrite(...) tu leggi e scrivi intere strutture a blocchi Ma nel tuo caso é diverso: siccome nel file non ci puoi scrivere il puntatore (sarebbe assurdo) ma per forza il valore, non puoi sapere quanto é grande il record. Quindi te li devi leggere tutti, uno per uno stare bene attento a quando lo scrivi, il record, che ci sia un delimitatore, un fine campo, sennó quando leggi il record come fai a sapere che é finito ??? (ma chi minkia ha fatto le specifiche ??? )Per capirci, la sizeof(FIELD_VALUE_t) non corrisponde con la reale dimensione del record sul file E poi in una struttura del genere servirebbe almeno un campo Codice:
int Length; // Dimensione del campo value Ripeto ed insisto: fai cambiare le specifiche Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Ho trovato il modo per leggere il sito con le specifiche
Ho "detto" a google di tradurlo e ... lo ha fatto quindi é mezzo in italiano e mezzo in inglese Ho solo capito che é molto diverso da come lo avevo inteso io. Scusa ma li si parla di database, il discorso diventa molto piú complesso, io pensavo ad un file sequenziale. Non mi posso mettere a leggere tutte le specifiche ...
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Scusa sono stato molto occupato ultimamente.
Pensavo che leggendoti quest'ultime specifiche riuscivi a capire cosa bisognava fare. Pazienza. Grazie lo stesso. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
beh, se vuoi mi mandi tutte le specifiche via mail,
me le studio, ti trovo una soluzione ... e ti mando la fattura
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:00.











)








