PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Chercher position d'une sous chaine suivant un masque ?
Chercher position d'une sous chaine suivant un masque ?
Iniciado por jacky.barret, ago., 02 2005 4:32 AM - 3 respostas
Publicado em agosto, 02 2005 - 4:32 AM
Bonjour,
un problème pour lequel je vois pas trop de solution :
dans une base de données j'ai une rubrique Adresse qui contient l'adresse complète sous divers formes, du style :

60 bd Vauban 59800 Lille
ou
10 r Asiens 59000 Lille BP 125
ou
170 r Collège 59700 MARCQ EN BAROEUL

je souhaite récupérer la position du code postal afin de pouvoir déterminer les sous chaines dont j'ai besoin (adresse,CP,Ville) et les stocker dans d'autres champs
l'idéal serait de chercher la position du code postal suivant un masque "[0-9]{1,5}" mais apparament pas possible ??

quelqu'un a une idée lumineuse ??
Publicado em agosto, 02 2005 - 1:09 PM
Salut,

tu ne peux pas utiliser les expressions régulières ?
Publicado em agosto, 02 2005 - 2:02 PM
Bonjour,

à priori ton problème doit pouvoir être résolu par les expressions
régulières, en utilisant :

VérifieExpressionRégulière(ChaineInitiale,"([ -.A-Za-z0-9]+)([0-9]{5})([
-.A-Za-z0-9]+)",Adresse,CodePostal,Ville)

Il y a cependant des cas qui ne sont pas forcément traités ici :
Les virgules éventuelles dans l'adresse et les caractères particuliers
éventuels , il faut donc adapter la liste des caractères autorisés.
De plus, je ne sais pas du tout comment se comporte la fonction dans le
cas ou tu aurais plus d'une suite de 5 chiffres dans ta chaine initiale.

Bon courage

Céline


verve80 a écrit:
Salut,

tu ne peux pas utiliser les expressions régulières ?
Publicado em agosto, 02 2005 - 3:27 PM
Bonjour,

Machaine = "60 bd Vauban 59800 Lille"
posCP est une chaine

i = ChaineOccurence(Machaine, " ") + 1

Pour y = 1 a i
posCP = ExtraitChaine( Machaine, y, " ")
SI val( posCP) <> 0 ET taille(posCP) = 5 ALORS
tu as trouvé le CP
FIN
FIN

Cordialement

C.AUBRY