Mailinglist Archive: opensuse-programming-de (23 mails)

< Previous Next >
Re: [opensuse-programming-de] dynamic structures
  • From: Thomas Hertweck <Thomas.Hertweck@xxxxxx>
  • Date: Sun, 12 Jul 2009 22:54:07 +0100
  • Message-id: <4A5A5B7F.8090901@xxxxxx>
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: opensuse-programming-de+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-programming-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups