Ajouter un champ de caractère

Forum traitant des automates industriels de marque Siemens.
Répondre
stagiaire21
Code sa première boucle
Code sa première boucle
Messages : 19
Enregistré le : 02 nov. 2016, 21:09

Ajouter un champ de caractère

Message par stagiaire21 »

Bonjour à toutes et à tous,

ce que je veux réaliser est simple mais bizarrement je ne trouve pas la fonction mathématique pour le faire.
Je récupéré une valeur (int) dans mon bloc de fonction que je transfere à un DB,
si int>10 tout va bien ,
si <ou=9 , je voudrais une fonction pour changer cette valeur en 2 caractères :
exemple 9 = 09 , 6=06, 15 = 15 , 2= 02

y a t-il une fonction pour cela?

En vous remerciant.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Ajouter un champ de caractère

Message par itasoft »

slts,
si int>10 tout va bien , --> ça veut dire que tu fais déjà une conversion d'un entier en une chaine de caractère.

Normalement la conversion d’un entier en chaîne de caractères donne le résultat sur 6 caractères ex : « 000009 »
il suffit de prendre les 2 caractères de droite avec une instruction du type RIGHT
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Ajouter un champ de caractère

Message par philou77 »

Salut !

Comme le dit Itasoft, le format INT c'est du numérique (les zéros à gauche sont non significatifs) alors que ce que tu veux toi (09) c'est du caractère !!
il te faudra donc convertir ton numérique en caractères si tu veux avoir cela (deux caractères occupent un mot ! chaque caractère est codé sur 1 octet )
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
stagiaire21
Code sa première boucle
Code sa première boucle
Messages : 19
Enregistré le : 02 nov. 2016, 21:09

Re: Ajouter un champ de caractère

Message par stagiaire21 »

L'idée semble bonne mais malheureusement 9 se transforme en T lorsque je le passe en caractère...
8 passe bien en 08 ($08) mais au dessus cela change de forme
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Ajouter un champ de caractère

Message par philou77 »

stagiaire21 a écrit : 02 mai 2017, 14:58 L'idée semble bonne mais malheureusement 9 se transforme en T lorsque je le passe en caractère...
8 passe bien en 08 ($08) mais au dessus cela change de forme
Le résultat c'est bien, mais si tu veux de l'aide poste l'exemple de ton programme, ça ira mieux !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Ajouter un champ de caractère

Message par itasoft »

slts,
tu dis: si int>10 tout va bien
Automaticien privé (de tout)
itasoft@free.fr
steph68
Codeur fou
Codeur fou
Messages : 275
Enregistré le : 21 oct. 2015, 08:23

Re: Ajouter un champ de caractère

Message par steph68 »

hello,

pour 2 chiffres, rien de plus simple que ça :

dizaine = (valeur) / 10 + 48
unité = (valeur) % 10 + 48 (% = modulo)

sinon, comme à dis @itasoft (et le plus "safe") fonction RIGHT sur concaténation de "00000" (padding) avec la valeur.

@+
Répondre