Convertir STRING en INT [Résolu]

76julien
Messages postés
59
Date d'inscription
lundi 14 janvier 2008
Dernière intervention
4 juin 2010
- 4 nov. 2009 à 10:36 - Dernière réponse : chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 8 mars 2012 à 15:56
Salut à tous,
je suis débutant et je souhaite savoir comment fait-on en C# pour convertir un string en integer. Je ne trouve pas le soluce.
Merci d'avance à tous ceux qui m'aideront...
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
DrIvory
Messages postés
47
Date d'inscription
lundi 14 septembre 2009
Dernière intervention
6 novembre 2009
- 4 nov. 2009 à 11:39
3
Merci
Alors,

si tu utilises int.Parse, il faut que tu sois sur d'avoir un entier représenté en string, sinon tu vas avoir une exception.

C'est pour cela que pour plus de sureté on utilise TryParse.

Exemple:
int res = int.Parse("lol");

Ca te fera un "FormatException"

alors qu'en utilisant TryParse, tu peux quelque chose comme ceci:
int res;
if (int.TryParse("lol", out res))
    Console.WriteLine("Ca parse : " + res);
else
    Console.WriteLine("Ce n'etait pas un entier :(");

Ca t'ecrira un "Ce n'etait pas un entier :("

Du coup, avec ceci tu n'as pas a vérifié, si l'utilisateur a bien taper un entier par exemple,
il te suffit de faire le traitement voulu en fonction du résultat de TryParse(qui te renvoit un booléen)

J'espère que mon explication te satisfera!

Merci DrIvory 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de DrIvory
DrIvory
Messages postés
47
Date d'inscription
lundi 14 septembre 2009
Dernière intervention
6 novembre 2009
- 4 nov. 2009 à 10:49
0
Merci
Bonjour,

int res = int.Parse(ma_string_qui_reprensente_un_entier);


Regarde quand meme du côter de la fonction int.TryParse qui est mieux ^^.
Commenter la réponse de DrIvory
76julien
Messages postés
59
Date d'inscription
lundi 14 janvier 2008
Dernière intervention
4 juin 2010
- 4 nov. 2009 à 11:09
0
Merci
Merci pour l'info
j'ai trouvé la soluce tout seul en utilisant ta méthode :

"int res = int.Parse(ma_string_qui_reprensente_un_entier);"

je vais tester avec TryParse pour voir la différence (il doit y en avoir une)

Si tu peux m'expliquer la différence....
Merci Dr IVORY
PS: sympa ton blaz
Commenter la réponse de 76julien
76julien
Messages postés
59
Date d'inscription
lundi 14 janvier 2008
Dernière intervention
4 juin 2010
- 4 nov. 2009 à 11:45
0
Merci
Comme tu le vois, sa me convient : Réponse Accepter
Je me doutais bien de ce truc la.
Merci Doc
++
Commenter la réponse de 76julien
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 7 mars 2012 à 06:29
0
Merci
je besoin d'aide pour convertir une chaine en entier.
Commenter la réponse de chicfrandy
Whismeril
Messages postés
12235
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 7 mars 2012 à 07:34
0
Merci
Et bien il suffit d'appliquer la réponse "Acceptée" de DrAvory.


Whismeril
Commenter la réponse de Whismeril
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 7 mars 2012 à 08:03
0
Merci
Merci beaucoup.c'est reussi.mais je voudrais aussi tester un code valide ou invalide
Commenter la réponse de chicfrandy
Whismeril
Messages postés
12235
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 7 mars 2012 à 18:25
0
Merci
Il faudrait que tu soit plus précis.
Quel code serait à tester et quelles sont les conditions de validité?


Whismeril
Commenter la réponse de Whismeril
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 7 mars 2012 à 21:42
0
Merci
le code est:324 217 694
il est valide s'il est divisible par 10
Donc, si l'usager donne 9 chiffres au programme, le programme peut répondre que le numéro est valide ou bien qu'il est invalide avec le code corrigé. Si l'usager donne 8 chiffres au programme, le programme donne le numéro complet après avoir calculé le code de validation.
Commenter la réponse de chicfrandy
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 7 mars 2012 à 21:51
0
Merci
En écrivant en noir les chiffres occupant des positions « impaires » à partir de la droite et en gris ceux occupant des positions « paires ».
324 217 694

En additionnant les nombres en noir, on obtient :
3+4+1+6+4 = 18

En multipliant par 2 chacun des chiffres occupant une position paire (gris), on obtient :
2×2=4, 2×2=4, 7×2=14, 9×2=18

En additionnant les chiffres qui composent ces produits, on obtient :
4 + 4 + 1 + 4 + 1 + 8 = 22

En additionnant les deux résultats :
18 + 22 = 40

Le numéro d'assurance sociale est valide si le résultat est divisible par 10. Dans cet exemple, 40 est divisible par 10, donc le numéro est valide.
Commenter la réponse de chicfrandy
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 7 mars 2012 à 21:56
0
Merci
Encore un grand merci d'avance,je vous ai envoyer beaucoup d'infos.je vous enprie aider moi.
Commenter la réponse de chicfrandy
Whismeril
Messages postés
12235
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 7 mars 2012 à 22:47
0
Merci
Je vois deux étapes.

La première est d'attendre d'avoir un "nombre" au bon format.

Je ne sais pas comment l'utilisateur saisie le numéro, si c'est dans une TextBox, tu peux la remplacer par une MaskEditBox.
Tu rentres le masque qui va bien pour obtenir 3 chiffres un espace 3 chiffres un espace 3 chiffres.
Un évènement se déclenche lorsque le masque est valide.

Une autre solution est de se servir d'une Regex et à chaque frappe de touche de vérifier si le texte valide ou non cette Regex.

La deuxième étape est ton calcul de validité, tu peux te servir du fait qu'une string est une sorte de "tableau" de caractère:
string nombre = "1234";
char charZero = nombre[0]; //charZero vaut '1'
char charDeux = nombre[2]; //charDeux vaut '3'

int chiffreZero = int.Parse(charZero); // chiffreZero vaut 1
int chiffreDeux = int.Parse(charDeux); // chiffreDeux vaut 3

int somme = chiffreZero + chiffreDeux; //somme vaut 4


Pour savoir si ton résultat est divisible par 10 il y a l'opérateur modulo (%), il calcule le reste d'une division, ce reste est égal à 0 quand le nombre est divisible par le second.

Whismeril
Commenter la réponse de Whismeril
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 8 mars 2012 à 01:40
0
Merci
je vous remercie beaucoup pour ce grand aide que vous m'avez accorder.oui le string comme tableau caractere j'avais penser aussi,mais regarder les autres complexites et svp aider moi.
En écrivant en noir les chiffres occupant des positions « impaires » à partir de la droite et en gris ceux occupant des positions « paires ».
324 217 694

En additionnant les nombres en noir, on obtient :
3+4+1+6+4 = 18

En multipliant par 2 chacun des chiffres occupant une position paire (gris), on obtient :
2×2=4, 2×2=4, 7×2=14, 9×2=18

En additionnant les chiffres qui composent ces produits, on obtient :
4 + 4 + 1 + 4 + 1 + 8 = 22

En additionnant les deux résultats :
18 + 22 = 40

Le numéro d’assurance sociale est valide si le résultat est divisible par 10. Dans cet exemple, 40 est divisible par 10, donc le numéro est valide.
Comment calculer le chiffre-clé ?
Le procédé de validation nous indique comment le chiffre-clé est calculé. Avec un peu d’algèbre et en remplaçant le chiffre-clé par x dans les calculs, nous pouvons résoudre une simple équation en x. Par exemple, supposons que la suite des chiffres d’information de votre carte d’assurance sociale soit 22501008. Alors, votre numéro d’assurance sociale serait :
225 010 08x
Et x est calculé comme suit :
Les chiffres aux positions impaires sont additionnés :
2+5+1+0+x = 8 + x
On multiplie les chiffres aux positions paires par deux :
2×2=4, 0×2=0, 0×2=0, 8×2=16
Les chiffres de tous les produits sont additionnés :
4 + 16 → 4 + 1 + 6 = 11
8 + x + 11 = 19 + x
Pour que 19 + x soit divisible par 10, le chiffre x doit être 1 et le numéro d’assurance sociale doit être :
225 010 081
Adapté d'un article paru dans la revue Accromoth, No 1, Été 2006. Écrit par Jocelyn Dagenais. Commission scolaire Marie-Victorin.


Énoncé du projet
Objectifs du travail
L'objectif du travail est de créer un programme de validation de numéros d'assurance sociale. L'usager peut aussi utiliser ce programme pour obtenir le neuvième chiffre du numéro (le chiffre de validation).
Donc, si l'usager donne 9 chiffres au programme, le programme peut répondre que le numéro est valide ou bien qu'il est invalide avec le code corrigé. Si l'usager donne 8 chiffres au programme, le programme donne le numéro complet après avoir calculé le code de validation.
Critères spécifiques :
le numéro peut être saisi avec ou sans espaces ;
si le numéro d'assurance sociale contient autre chose que des espaces ou des chiffres, le programme va s'arrêter à cause d'une erreur. Vous n'avez pas la responsabilité de gérer cette erreur ;
le numéro saisi doit contenir 8 ou 9 chiffres valides ;
l'affichage du numéro corrigé (s'il y a lieu) se fera en groupes de 3 chiffres ;
vous avez vu j'attend votre reponse.mais je travaille en mode console et pas encore avec les fenetre.Merci de bien vouloir m'aider
Commenter la réponse de chicfrandy
Whismeril
Messages postés
12235
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 8 mars 2012 à 07:23
0
Merci
Bonjour,

il faut que tu fasses les choses étape par étape.

Le logiciel doit

1 Demander une saisie opérateur.

2 Vérifier si le format correspond à un numéro complet.

3 Si oui calculer si le numéro est valide.

4 Si non vérifier si le format correspond à un numéro sans clé.

5 Si oui calculer la clé.

6 Si non générer une erreur

A ta place je commencerai par les étapes 1 à 3.
Puis une fois que ça marche les étapes 4 et 5
Et enfin l'étape 6.

Ecris ton code.
Si tu ne trouves pas, poste ce code avec les balises (3eme icône en partant de la droite au dessus de la zone de saisie) et mettant des commentaires la ou tu bloques et les erreurs rencontrées.

Whismeril
Commenter la réponse de Whismeril
chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 8 mars 2012 à 15:56
0
Merci
Bonjour et merci pour votre aide.
je deja demande a l'utilisateur de saisir un code.en utilisant


Console.Write("Tapez votre code : ");
String Code = Console.ReadLine();
Console.ReadLine();
maintenant il faut faire un test sur le code pour voir si il appartient a toute les detail que je vous ai donner la haut.par exemple.comment parcourir le tableau et convertir les caracteres.
merci beaucoup!!!
Commenter la réponse de chicfrandy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.