Gå til innhold

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


Anbefalte innlegg

Skrevet (endret)

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
Videoannonse
Annonse
Skrevet

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)

 

eller bruk p

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

Skrevet
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...

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...