Thread unverständnis zu sprintf
(22 answers)
Opened by also at 2010-08-13 21:19 Das ist so nicht ganz korrekt. Erstens unpack hat ein anderes Format als sprintf. Zweitens bekommst du bei unpack eine Liste von Zahlen zurück, nicht nur ein einzige (sofern $var mehr als ein Zeichen enthält). Und dritens ist die Deklaration in sprintf nicht korrekt. Man kann es so machen, obwohl ich nicht weiß wie dein restlicher Code aussieht. Code (perl): (dl
)
1 2 3 4 5 6 7 8 # aus dem binärdaten eine Liste von Zahlen machen my @chars=unpack('C*', $var); # jede zahl in HEX umwandeln; $_=sprintf('%02X',$_) for(@chars); # Liste zu einem mit Leerzeichen getrennten String zusammen führen $var=join(' ',@chars); Das kann man auch in eine Zeile schreiben: Code (perl): (dl
)
$var=join(' ',map{sprintf('%02X',$_)}unpack('C*', $var)); Wenn du eine Sprache nicht beherrscht und falsche Annahmen (alles hat das selbe Format) dann bekommst du seltsame Ergebnisse. Weiterhin wunder ich dass perl an den Stellen keine Wahrungen geben hat nutzt du die Pragmas strict und warnings? Beispiel: EDIT: falsche Anführungszeichen im Code Last edited: 2010-08-14 11:45:28 +0200 (CEST) |