Seite 1 von 1

unpack in ein Objekt (struct)

Verfasst: Dienstag 19. Februar 2013, 22:12
von sashs
Hallo,

ich hoffe der Titel ist nicht zu seltsam. :-)
In Ruby gibt es die Möglichkeit die Daten in ein Rekort mit einzelnen Feldern einzulesen.

Code: Alles auswählen

class Daten < BinData::Record
        endian :big
        uint32 :len
        string :data, :read_length => :len
        uint32 :checksum
end
Da wird dann ein grob gesagt ein read gemacht und es einem Objekt davon zugewiesen, wobei die länge von data von len abhängig ist. Dann kann man auf die einzelnen Felder zugreifen, also ähnlich einem struct in c.

Ist es möglich so etwas in Python nachzubauen, ohne ctypes zu verwenden und ohne mehrere einzelne Variablen zu haben und diese nacheinander mit unpack zuzuweisen?

Gruß

Sascha

Re: unpack in ein Objekt (struct)

Verfasst: Dienstag 19. Februar 2013, 22:32
von Sirius3
Hallo sashs,
wenn Du eine variable Recordgröße hast, kommst Du um mehrere unpack-Aufrufe nicht drumrum.
Aber wo ist dabei das Problem?

Re: unpack in ein Objekt (struct)

Verfasst: Dienstag 19. Februar 2013, 22:36
von sashs
Hallo,

danke für deine Antwort.
Konkret ist es kein Problem. Ich hätte es anders nur schöner gefunden, da man grob gesagt einen Datensatz komplett einließt und nicht in mehreren Schritten. Es hätte ja sein können, dass es noch eine Möglichkeit gibt, die ich noch nicht kenne. :-)

Gruß

Sascha

Re: unpack in ein Objekt (struct)

Verfasst: Dienstag 19. Februar 2013, 22:36
von BlackJack
@sashs: Das geht mit dem `construct`-Modul.

Re: unpack in ein Objekt (struct)

Verfasst: Dienstag 19. Februar 2013, 22:46
von sashs
Oh, danke. Das sieht doch sehr gut aus.

Gruß

Sascha