C# Probléme pour controlez un code postal

Résolu
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004 - 9 nov. 2004 à 10:03
abornand Messages postés 1 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 15 novembre 2005 - 15 nov. 2005 à 16:48
Bonjour a tous !!!

Je suis débutante dans le c# !et d'ailleurs nouvelle dans ce forum aussi !!!

Et je voudrais savoir comment contrôler qu'un code postal est correct, mais voilà mon champ est de type char donc je ne peux pas faire:

((_Organisme.codePostal<"01000")||(_Organisme.codePostal>"99999"))

Comment puis-je faire???????????
Merci pour vos futures réponses!!!!

Aurore

14 réponses

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
9 nov. 2004 à 11:42
oups

/// <summary>
/// Fonction qui va tester le code postal
/// </summary>
/// Le code postal A tester

/// <returns>True si le code postal est correct, False sinon</returns>
public static bool f_Verifie_CP(string Code_Postal)
{
//Par défaut on retourne true
bool retour = true;

try
{
//ON fait les tests qu'il faut
if( (Convert.ToInt32(Code_Postal)<1000) || (Convert.ToInt32(Code_Postal)> 99999) )
{
retour = false;
}
}
catch(Exception xcp)
{
MessageBox.Show(xcp.Message);
}

return retour;
}

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
2
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
9 nov. 2004 à 10:42
Salut et Bienvenue,

Tu peux poster un peu de code histoire d'y voir plus clair :o)))
Tu dis que ton champ est de type char???

Attention il me semble que le code postal de la Corse contient des lettres aussi donc ton test du dessus ne fonctionnera pas...il me semble

Sinon Tu peux faire une fonction Qui retourne un booléen si ton code postal est correct ou non :

namespace Outils
{
public class Fonction
{
/// <summary>
/// Fonction qui va tester le code postal
/// </summary>
/// Le code postal A tester

/// <returns>True si le code postal est correct, False sinon</returns>
public static bool f_Verifie_CP(string Code_Postal)
{
//Par défaut on retourne true
bool retour = true;

//ON fait les tests qu'il faut
if( (Code_Postal<"01000") || (Code_Postal>   "99999") )
{
retour = false;
}

return retour;
}
}
}


du coup a l'utilisation ca sera plus simple :

if(Outils.Fonction.f_Verifie_CP(_Organisme.codePostal))
{
//......
}

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
9 nov. 2004 à 10:57
Mais en fait le ligne
if( (Code_Postal<"01000") || (Code_Postal> "99999") )
ne fonctionne pas il me met un message d'erreur :

L'opérateur '<' ne peut pas être appliqué aux opérandes de type 'string' et 'int'

Je ne comprends pas pourquoi il me met ce message!!!!!

Aurore
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 nov. 2004 à 12:44
Sinon tu peux utiliser des expressions régulières (REXEXP) ainsi que des validators.

::|The S@ib|::
MVP C#.NET
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 nov. 2004 à 12:56
using System.Text.RegularExpressions;

void MatchRegex(string input )
{

    RegexOptions   options = RegexOptions.None;
    Regex          regex = new Regex(@"^\d{5}$", options);
    bool   isMatch = regex.IsMatch(input);
    if( isMatch )
return true
   return false;

   }

::|The S@ib|::
MVP C#.NET
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
9 nov. 2004 à 13:46
Merci beaucoup je suis enfin arriver à avoir un contrôle correct!!!!!!
Merci!!!

A plus...

Pour d'autres renseignements ;-)

AuroreAurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
9 nov. 2004 à 14:04
valide la reponse qui ta convenu(avec le bouton "reponses acceptez" ou alors si tu a fait un truc poste le (histoire que cela serve a d'autre...)

merci :o)))
@+

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 nov. 2004 à 14:07
"ou alors"

J'aurais mis un "et',

Valide et poste une source:)

::|The S@ib|::
MVP C#.NET
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
9 nov. 2004 à 14:19
lol...

oui valide ET poste une source :o)))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
9 nov. 2004 à 16:30
Voilà j'ai validé la réponse mais par contre j'ai pas posté car j'ai rien changé à ce que tu m'as donné!!!!!

Meçri encore de tout ses renseignements !!!!!

A bientot

AuroreAurore
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 nov. 2004 à 16:32
Bon bah , mes regexp n'ont pas plu :(

Pourtant c'était plus propre et efficasse et + cours ...

bouhhh :(

::|The S@ib|::
MVP C#.NET
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
9 nov. 2004 à 16:56
oui mais pour commencer y a qd meme plus simple...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005
10 août 2005 à 18:13
lol! Bien joué le regex malgré l'exception corse! (et depuis quand un void retourne true ou false? lol)
0
abornand Messages postés 1 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 15 novembre 2005
15 nov. 2005 à 16:48
C'est quoi ce code à 2 balles, je veux bien que le compilateur optimise le code mais bon, ça n'empêche pas de coder correctement



ça c'est une horreur, une hérésie, même un étudiant programmeur de
première année après 1 mois de cours ne le fait plus, sous peine de
hautes sanctions



<Garbage Code>

using System.Text.RegularExpressions;



void MatchRegex(string input )

{ RegexOptions options = RegexOptions.None;

Regex regex = new Regex(@"^\d{5}$", options);

bool isMatch = regex.IsMatch(input);

<Heresie>

if( isMatch )

return true

return false;

</Heresie> }

</Garbage Code>





return new Regex(@"^\d{5}$", RegexOptions.None).IsMatch(input);





ça ne sert à rien de déclarer une nouvelle variable booléenne pour la tester ensuite et retrouner juste sa valeur.

Et ne me dites pas que c'est à but didactique car je ne vous croirais pas
0
Rejoignez-nous