PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → [WD24]Chaine vers Hexa
[WD24]Chaine vers Hexa
Iniciado por NerDeD, 29,jul. 2021 12:15 - 3 respuestas
Miembro registrado
8 mensajes
Publicado el 29,julio 2021 - 12:15
Bonjour,

Je sais que ce sujet a été traité maintes et maintes fois mais toutes parle d'utiliser la fonction BufferVersHexa() mais cela ne s'applique pas vraiment à ce que je veux faire.
Dans mon application, j'ai décidé pour certains items d'être identifiés par un ID unique non géré par HFSQL. L'id est généré par construction avec plusieurs ID :
IDTechnicien
IDMatériel
IDincrémenté (par une boucle par rapport au précédent ID généré)

Je convertis ces valeurs en chaine puis je construis mon IDUnique = IDTechnicien + IDMatériel + IDincrémenté. Puis je le reconverti en entier via la fonction Val().
Mais évidemment, comme j'aurai plus de 10 techniciens, je finirai quoiqu'il arrive à avoir des doublons.

Donc en regardant la doc, j'ai vu que les entiers peuvent être stockés en Hexa sous la forme 0x_1A_2B_3C par exemple. Mais lorsque je veux reconvertir ma chaine en entier, je coince car Val sort 0 dès qu'il y a une lettre.

Avez-vous une idée ?
Miembro registrado
3.889 mensajes
Popularité : +227 (347 votes)
Publicado el 29,julio 2021 - 12:44
Bonjour, dans Val, tu peux préciser la base
e.g:
nNbTech est entier

nNbTech=Val("1A",16) //Ou Val("1A","x")


--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
8 mensajes
Publicado el 29,julio 2021 - 16:52
Bonjour,

Merci pour cette réponse, toutefois, il apparait impossible de stocker une valeur Hexa sous la forme 0x_1A_2B_3C dans un fichier HFSQL sans que la rubrique ne soit en texte.
J'ai donc opté pour le UUID qui lui me permet de le construire en portion.

Merci quand même.
Miembro registrado
3.889 mensajes
Popularité : +227 (347 votes)
Publicado el 01,agosto 2021 - 10:05
NerDeD a écrit :
il apparait impossible de stocker une valeur Hexa sous la forme 0x_1A_2B_3C dans un fichier HFSQL sans que la rubrique ne soit en texte.

ça c'est une chaine, l'entier c'est 0x1A2B3C.
Pour le créer, il faut utiliser les décalage de 16 et 8 bit avec la fonction OR et l'exploiter, il faut utiliser les masques 0x11000, 0x001100 et 0x000011 avec lles fonction et bit à bit

--
Il y a peut être plus simple, mais, ça tourne