fonction pack

fonction pack - Perl - Programmation

Marsh Posté le 03-06-2004 à 14:23:39    

est ce que quelqu'un peut m'expliquer comment fonctionne la fonction pack en perl
 
j'ai ca ds un prog :
$variable = pack(H16,0123456789ABCDEF);
et plus loin  
unpack (H16,$var_unpack);
 
j'ai lu la doc perl concernant pack mais bon ca m'a pa bcp aidé
merci d'avance

Reply

Marsh Posté le 03-06-2004 à 14:23:39   

Reply

Marsh Posté le 03-06-2004 à 23:06:24    

jamais vu cette fonction avant...


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 04-06-2004 à 09:41:35    

pack( ) sert à transformer une chaîne de caractère selon un format que la fonction reçoit en paramètres. A l'inverse, unpack( ) te retourne la chaîne initiale.
 
Exemple de conversion de chaîne via caractères uuencodés (u) :

Code :
  1. print pack("u", "toto" );
  2. # affiche ---> $=&]T;P``, je sais c'est moche ;))))


 
Et pour retrouver notre chaîne "toto" :

Code :
  1. print unpack("u", "\$=&]T;P``" );
  2. # affiche ---> toto, attention au signe $ qui pose ici prob!!


 
Pour te donner un exemple d'emploi de pack( ), on s'en sert au boulot pour décrypter certains noms utilisateurs et mots de passe avant de se connecter à nos BDD


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 04-06-2004 à 14:43:57    

H16 (quit doit etre entre guillemets) ca veut dire que le pack va prendre 16 valeurs en hexa (dans ta chaine en second parametre) et packer tout ca dans une variable en une chaine d'octets (qui fera donc ici 8 octets)
 
le unpack fait l'inverse
 
on peut aussi mettre "H*" à la place de "H16", pour consommer toute la chaine, meme si elle depasse 16 valeurs hexa


Message édité par pospos le 04-06-2004 à 14:44:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed