Re: dynamic structures
Thomas Hertweck <[email protected]> Sun, 12 Jul 2009 22:54:07 +0100
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Hi!
Martin Hofius wrote:
> Am Sonntag, 12. Juli 2009 schrieb Thomas Hertweck:
>> [...]
>> struct data {
>> double xcoordinate;
>> double ycoordinate;
>> int counter;
>> float attribute;
>> };
> Das sieht sehr übersichtlich aus - ich vermute aber, dass das im realen
> Programm etwas länger ist?
Korrekt. Insgesamt handelt es sich um ca. 200 bis 500 Byte pro struct, ca.
40 bis 100 Variable. Das kann aber variieren.
> [...]
> Ich denke, dazu fehlen einfach noch ein paar Informationen. Sind die
> Datentypen fest an die einzelnen Variablen gekoppelt oder wechseln die auch?
> (z.B. xccordinate mal als double, mal als int)
Die Typen und Namen der Variablen koennen fuer dieses Problem glaube ich
als statisch angenommen werden. Insofern variiert hier primaer die
Position (byte offset) und die Anzahl der Variablen.
> Wenn die fest wären, könntest Du die Daten in einen Speicherbereich einlesen
> und in dem struct die Variablen als Pointer deklarieren, die Du dann
> entsprechend dem Aufbau in der Datei passend auf die einzelnen Bestandteile
> setzt.
Ich habe allerdings keine feste Anzahl von Variablen. Wie oben angedeutet
kann je nach Format der Datei die Anzahl variieren.
> Oder: Wieviele Kombinationen gibt es für die Reihenfolge der Variablen? Du
> könntest verschiedene struct definieren und dann passend casten. Passt
> natürlich nur für eine kleine Menge an Kombinationen und auch nur dann, wenn
> es Dir sowohl beim Lesen aus der Datei wie auch beim Zugriff auf Performance
> ankommt.
Ne, Kombination bilden ist nicht moeglich bei 80 Variablen oder so ;-)
Performance spielt eine recht grosse Rolle. Wie gesagt, ich habe eine
Loesung ueber einen Dictionary (Lookup Table), die scheint zu
funktionieren. Ich weiss nur nicht, ob sie wirklich elegant und schnell
ist oder ob es etwas besseres gibt.
Sorry, ich kann das Problem momentan nur relativ abstrakt beschreiben, ich
hoffe, es ist trotzdem einigermassen verstaendlich, was ich erreichen will.
Gruesse,
Thomas
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]