C# Probléme pour controlez un code postal [Résolu]

Aurore1205 19 Messages postés lundi 8 novembre 2004Date d'inscription 18 novembre 2004 Dernière intervention - 9 nov. 2004 à 10:03 - Dernière réponse : abornand 1 Messages postés mercredi 19 novembre 2003Date d'inscription 15 novembre 2005 Dernière intervention
- 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
Afficher la suite 

14 réponses

Répondre au sujet
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 9 nov. 2004 à 11:42
+2
Utile
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..."
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Arthenius
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 9 nov. 2004 à 10:42
0
Utile
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..."
Commenter la réponse de Arthenius
Aurore1205 19 Messages postés lundi 8 novembre 2004Date d'inscription 18 novembre 2004 Dernière intervention - 9 nov. 2004 à 10:57
0
Utile
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
Commenter la réponse de Aurore1205
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 9 nov. 2004 à 12:44
0
Utile
Sinon tu peux utiliser des expressions régulières (REXEXP) ainsi que des validators.

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 9 nov. 2004 à 12:56
0
Utile
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
Commenter la réponse de TheSaib
Aurore1205 19 Messages postés lundi 8 novembre 2004Date d'inscription 18 novembre 2004 Dernière intervention - 9 nov. 2004 à 13:46
0
Utile
Merci beaucoup je suis enfin arriver à avoir un contrôle correct!!!!!!
Merci!!!

A plus...

Pour d'autres renseignements ;-)

AuroreAurore
Commenter la réponse de Aurore1205
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 9 nov. 2004 à 14:04
0
Utile
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..."
Commenter la réponse de Arthenius
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 9 nov. 2004 à 14:07
0
Utile
"ou alors"

J'aurais mis un "et',

Valide et poste une source:)

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 9 nov. 2004 à 14:19
0
Utile
lol...

oui valide ET poste une source :o)))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Aurore1205 19 Messages postés lundi 8 novembre 2004Date d'inscription 18 novembre 2004 Dernière intervention - 9 nov. 2004 à 16:30
0
Utile
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
Commenter la réponse de Aurore1205
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 9 nov. 2004 à 16:32
0
Utile
Bon bah , mes regexp n'ont pas plu :(

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

bouhhh :(

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 9 nov. 2004 à 16:56
0
Utile
oui mais pour commencer y a qd meme plus simple...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
mythic_kruger 242 Messages postés jeudi 8 janvier 2004Date d'inscription 10 novembre 2005 Dernière intervention - 10 août 2005 à 18:13
0
Utile
lol! Bien joué le regex malgré l'exception corse! (et depuis quand un void retourne true ou false? lol)
Commenter la réponse de mythic_kruger
abornand 1 Messages postés mercredi 19 novembre 2003Date d'inscription 15 novembre 2005 Dernière intervention - 15 nov. 2005 à 16:48
0
Utile
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
Commenter la réponse de abornand

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.