úterý 14. září 2010

Python: parsování dat - struct.pack(), struct.unpack()

Přijímám si data z komunikace do bufferu.
A poté si je chci rozparsovat do nějaké struktury nebo slovníku chcete-li.

Jo v céčku tam s tím nemám problém, prostě bych si buffer procházel, přetypoval na pointer přislušného typu a přiřadil..

/* struktura bufferu
   | mujByte(1b) | mujWord(2b) | mujDword (4b) | */

length = 0;
data.mujByte = *(byte *)(buffer + length)

length += sizeof(byte)
data.mujWord = *(word *)(buffer + length)

length += sizeof(word)
data.mujDword = *(dword *)(buffer + length)

ale jak si poradit v pythonu?

import struct
data['mujByte'], data['mujWord'], data['mujDword'] \
   = struct.unpack("<BHI", buffer)

  • < - little-endian (> - big-endian)
  • B - unsigned char
  • H - unsigned short
  • I - unsigned int

    více zde
  • Žádné komentáře:

    Okomentovat