Transformation chaine en ?
Philippe1-Jul-2009/23:55:55+2:00
Bonjour,

10 jours sans posts, c'est trop.
Voilà une petite stimulation neuronale pour ceux qui ne sont pas partis en vacances...çà doit être simple pour nos gourous !

Dans une fonction d'encodage, je récupère une chaîne (string!) sous la forme suivante que je veux repasser en integer :

temp-hexa: rejoin ["#0000" d/7 d/8 d/5 d/6]
to-integer "#0000A014"
** Script Error: Invalid argument: #0000A014
** Where: to-integer
** Near: to integer! :value

; et je voudrais avoir en fait :
>> to-integer #0000A014
== 40980



Une idée sur une soluce toute simple ?

===Philippe
rosanoff2-Jul-2009/11:20:24+2:00
Bonjour,
moi je passe par un to-issue avant un to-integer.
Mais bon je ne suis pas un as du "tout simple et tout cours".

Bon dev.
Didec2-Jul-2009/17:27+2:00
to-integer rejoin [#0000 d/7 d/8 d/5 d/6]

Si d est un string! ça doit être bon.

Notes :
- 'rejoin renvoie un élément du type du premier élément du block.
- un issue! est un any-string! donc on peut le traiter comme une série.
rosanoff3-Jul-2009/7:27:07+2:00
Bonjour,
merci pour les précisions.
Bon dev
Philippe6-Jul-2009/8:52:07+2:00
Salut,

Merci pour les réponses, j'ai une solution, pas très élégante, mais fonctionnelle. d est le résultat de ce genre de calcul :

== #000015AC
>> d: to-hex 5548
== #000015AC
>> type? d
== issue!


Pour info et l'exemple, 5548 est la valeur d'un port TCP, dont le résultat en hexa doit être inversé : #0000AC15 et retourné en integer! (fonction dans le cryptage standard d'un cookie d'un LB BigIP F5).

à +,
===Philippe
guest29-Jul-2009/22:20:55+2:00
J'ai pas tout compris, comme d'hab.
Donc tu partirais d'un string genre d: "14A0"
Et tu voudrais l'entier 40980.

je le mets en binary!
>>d: debase/base d 16
==#{14A0}

Je l'inverse
>>reverse d
==#{A014}

et le le convertis en entier.
>>to-integer d
==40980

En résumé:
>>to-integer reverse debase/base d 16

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2