PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2025 → Un élément de type 'enregistrement' ne peut pas être converti vers le type 'chaîne UNICODE'
Un élément de type 'enregistrement' ne peut pas être converti vers le type 'chaîne UNICODE'
Started by ClemC, Apr., 12 2022 10:00 AM - 7 replies
Registered member
33 messages
Posted on April, 12 2022 - 10:00 AM
Param est un Enregistrement de Parametre

MonUtilisateur est une chaîne = Utilisateur
MonMotDePasse est une chaîne = HashMDP(Mot_de_passe)

Param.User = MonUtilisateur
Param.Mdp = MonMotDePasse

HAjoute(Param)


Salut je n'arrive pas à résoudre ce problème, que voici -> Un élément de type 'enregistrement' ne peut pas être converti vers le type 'chaîne UNICODE'.
Message modified, April, 12 2022 - 10:00 AM
Registered member
33 messages
Posted on April, 12 2022 - 10:03 AM
Procedure HashMDP(LOCAL sMotDePasse est une chaîne) : chaîne

// Pour calculer le hash la chaîne obtenue est hashée avec l'algorithme HA_SHA_256
sHash est une chaîne = BufferVersHexa(HashChaîne(HA_SHA_256,sMotDePasse),SansRegroupement)

RENVOYER sHash

Ma fonction
Registered member
33 messages
Posted on April, 12 2022 - 10:03 AM
Procedure HashMDP(LOCAL sMotDePasse est une chaîne) : chaîne

// Pour calculer le hash la chaîne obtenue est hashée avec l'algorithme HA_SHA_256
sHash est une chaîne = BufferVersHexa(HashChaîne(HA_SHA_256,sMotDePasse),SansRegroupement)

RENVOYER sHash
Registered member
232 messages
Posted on April, 12 2022 - 10:12 AM
Bonjour,

En regardant l'aide de la fonction "BufferVersHexa", l'exemple montre qu'il faut stocker le résultat dans une chaine UNICODE. https://doc.pcsoft.fr/?1000019916
Registered member
33 messages
Posted on April, 12 2022 - 10:18 AM
Param est un Enregistrement de Parametre
MonBufferAnsi est un Buffer

MonUtilisateur est une chaîne = Utilisateur
MonMotDePasse est une chaîne UNICODE = HashMDP(Mot_de_passe)
MonBufferAnsi = UnicodeVersAnsi(MonMotDePasse)

Param.User = MonUtilisateur
Param.Mdp = MonBufferAnsi

HAjoute(Param)


Ducoup j'ai fait ça mais toujours la même erreur
Message modified, April, 12 2022 - 10:20 AM
Registered member
232 messages
Posted on April, 12 2022 - 10:25 AM
C'est la fonction BufferVersHexa qui retourne une chaine UNICODE... donc vous devez adapter votre fonction "HashMDP".
Registered member
33 messages
Posted on April, 12 2022 - 10:52 AM
Bonjour,

ce ne serait pas la fonction HAjoute qui retourne une erreur?
essaie avec
HAjoute(Parametre, Param)
Registered member
33 messages
Posted on April, 12 2022 - 11:01 AM
Oui c'était la fonction qui retourné cette erreur, j'ai changé de méthode j'ai enlevé l'enregistrement.
MonUtilisateur est une chaîne = Utilisateur
MonMotDePasse est une chaîne UNICODE = HashMDP(Mot_de_passe)

Parametre.User = MonUtilisateur
Parametre.Mdp = MonMotDePasse

HAjoute(Parametre)

Comme ça plus de problème, merci a vous.