Gå til innhold

[LØST]Fjerne padding i struct funksjonen...


Anbefalte innlegg

Har sett litt på struct funksjonen.

 

Eksempel.

 

>>> pack('5s5s', 'Hey', 'you')
'Hey\x00\x00You\x00\x00'
>>> t = pack('5s5s', 'Hey', 'You')
>>> a, b = unpack('5s5s', t)
('Hey\x00\x00', 'You\x00\x00')

 

Er det mulig å forhindre at paddingen kommer med i resultatet når man benytter strenger? Eller må jeg lage en funskjon som fjerner paddingen? Utgangspunktet er selvsagt at man ikke vet akkurat hvor lang hver streng er.

 

Ørjan...

Endret av Orjanp
Lenke til kommentar
Videoannonse
Annonse
Du kan vel bare gjøre noe slikt:

 

s1 = "hey"
s2 = "you"
format = '%ss%ss' % (len(s1), len(s2))
t = struct.pack(format, s1, s2)
a, b = struct.unpack(format , t)

 

Det forutsetter at mottaker av t også får format. Noe som ikke alltid er tilfellet.

 

eller bruk p

t = struct.pack(5p5p, "hey", "you")
struct.unpack(5p5p , t)
('hey', 'you')

6864387[/snapback]

 

p fungerte utmerket. Takk for hjelpen.

 

Ørjan...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...