Cédric Leclerc a écrit :Bonjour André,
J'ai peut être une solution pour vous concernant votre recherche de
codes postaux.
Cordialement
Cédric Leclerc a écrit :
Bonjour André,
J'ai peut être une solution pour vous concernant votre recherche de
codes postaux.
Cordialement
Cédric Leclerc a écrit :Bonjour André,
J'ai peut être une solution pour vous concernant votre recherche de
codes postaux.
Cordialement
Le Fri, 24 Jul 2009 22:47:39 +0200, Thierry 46
a écrit:Cédric Leclerc a écrit :Bonjour André,
J'ai peut être une solution pour vous concernant votre recherche de
codes postaux.
[...]
Cordialement
Ceci est-il légal ?
--
TT
Le Fri, 24 Jul 2009 22:47:39 +0200, Thierry 46 <thierry.magnac@orange.fr>
a écrit:
Cédric Leclerc a écrit :
Bonjour André,
J'ai peut être une solution pour vous concernant votre recherche de
codes postaux.
[...]
Cordialement
Ceci est-il légal ?
--
TT
Le Fri, 24 Jul 2009 22:47:39 +0200, Thierry 46
a écrit:Cédric Leclerc a écrit :Bonjour André,
J'ai peut être une solution pour vous concernant votre recherche de
codes postaux.
[...]
Cordialement
Ceci est-il légal ?
--
TT
Re,
Je viens de faire un éssai en appliquant votre modif et en retirant la
mienne.
Je trouve 38784 communes en 28 mn environ.
Le hic c'est que je trouve toujours des doublons en CP+Ville (par ex en
59xxx)
La mesure ne serait-elle efficace que pour les dpt allant de 01 à 09 ?
--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu et Cut Data Radars sur http://pagesperso-orange.fr/mdev/
Pour me contacter, cliquez ici :
http://cerbermail.com/?OT0Wnwyzph
"Thierry 46" a écrit dans le message de news:
4a6afe18$0$23445$STASZEWSKI André a écrit :Re,
Je viens de tester avec succès la procédure.
Vraiment super..
C'est pour moi un excellent support pédagogique avant tout !
J'ai résolu le problème des doublons dans le dernier maillon au niveau de
la procédure RemplissageTable en modifiant le code comme ci-dessous :
//Sauter les lignes dont la ville existe déjà puisqu'il ne peut exister
qu'une seule ville.
SI TableCherche(COL_Ville,gstCommuneEnCours:Ville)= -1 ALORS
TableAjouteLigne(TABLE_LstTrouve,gstCommuneEnCours:CodePostal,gstCommuneEnCours:Ville,gstCommuneEnCours:Departement)
FIN
Mais il aurait peut être été préférable de traiter les doublons dans un
niveau inférieur ? (gain en vitesse ?)
Qu'en pensez-vous ?
Re,
en fait pour avoir aussi les départements 01 à 09 il faut modifier la proc
RechCPall(): ainsi il ne devrait pas y avoir de doublon en interrogeant par
01, 02 etc...
Mais il y a des doublons: c'est normal car c'est sur le serveur (1936
doublon!). Recherchez 59000, et bien il va sortir en double, idem 59, donc
il faut bien traiter les doublons ....
Si la capture dure dans les 25 minutes, la méthode d'André pour la gestion
des doublons prend 8 minutes de plus ! Mais cela en enlève trop:
- la capture trouve 38784 lignes
- après un traitement séparé pour enlever les doublons reste: 36848 codes
- après le traitement d'André ne reste que 34176 codes !
Pourquoi: parce que une nom de ville peut être dans plusieurs départements
ex:
24460 Ligueux
33220 Ligueux
ou même:
59000 Lille
59800 Lille // cela descend au niveau de la rue
Pour ma part j'ai modifié RechCPall() en
// pas besoin de cette chaine
//sCpRech est une chaine
POUR nI_pos = 1 A 99
et
sURLRecherche =
ChaîneConstruit("http://www.codeposte.com/home.php?s_keyword="+NumériqueVersChaîne(nI_pos,"02d")+"&codepostalPage="+
nNumPage)
Je laisse le soin à l'auteur Cédric d'y apporter la touche finale.
Cordialement
Re,
Je viens de faire un éssai en appliquant votre modif et en retirant la
mienne.
Je trouve 38784 communes en 28 mn environ.
Le hic c'est que je trouve toujours des doublons en CP+Ville (par ex en
59xxx)
La mesure ne serait-elle efficace que pour les dpt allant de 01 à 09 ?
--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu et Cut Data Radars sur http://pagesperso-orange.fr/mdev/
Pour me contacter, cliquez ici :
http://cerbermail.com/?OT0Wnwyzph
"Thierry 46" <thierry.magnac@orange.fr> a écrit dans le message de news:
4a6afe18$0$23445$ba4acef3@news.orange.fr...
STASZEWSKI André a écrit :
Re,
Je viens de tester avec succès la procédure.
Vraiment super..
C'est pour moi un excellent support pédagogique avant tout !
J'ai résolu le problème des doublons dans le dernier maillon au niveau de
la procédure RemplissageTable en modifiant le code comme ci-dessous :
//Sauter les lignes dont la ville existe déjà puisqu'il ne peut exister
qu'une seule ville.
SI TableCherche(COL_Ville,gstCommuneEnCours:Ville)= -1 ALORS
TableAjouteLigne(TABLE_LstTrouve,gstCommuneEnCours:CodePostal,gstCommuneEnCours:Ville,gstCommuneEnCours:Departement)
FIN
Mais il aurait peut être été préférable de traiter les doublons dans un
niveau inférieur ? (gain en vitesse ?)
Qu'en pensez-vous ?
Re,
en fait pour avoir aussi les départements 01 à 09 il faut modifier la proc
RechCPall(): ainsi il ne devrait pas y avoir de doublon en interrogeant par
01, 02 etc...
Mais il y a des doublons: c'est normal car c'est sur le serveur (1936
doublon!). Recherchez 59000, et bien il va sortir en double, idem 59, donc
il faut bien traiter les doublons ....
Si la capture dure dans les 25 minutes, la méthode d'André pour la gestion
des doublons prend 8 minutes de plus ! Mais cela en enlève trop:
- la capture trouve 38784 lignes
- après un traitement séparé pour enlever les doublons reste: 36848 codes
- après le traitement d'André ne reste que 34176 codes !
Pourquoi: parce que une nom de ville peut être dans plusieurs départements
ex:
24460 Ligueux
33220 Ligueux
ou même:
59000 Lille
59800 Lille // cela descend au niveau de la rue
Pour ma part j'ai modifié RechCPall() en
// pas besoin de cette chaine
//sCpRech est une chaine
POUR nI_pos = 1 A 99
et
sURLRecherche =
ChaîneConstruit("http://www.codeposte.com/home.php?s_keyword="+NumériqueVersChaîne(nI_pos,"02d")+"&codepostalPage="+
nNumPage)
Je laisse le soin à l'auteur Cédric d'y apporter la touche finale.
Cordialement
Re,
Je viens de faire un éssai en appliquant votre modif et en retirant la
mienne.
Je trouve 38784 communes en 28 mn environ.
Le hic c'est que je trouve toujours des doublons en CP+Ville (par ex en
59xxx)
La mesure ne serait-elle efficace que pour les dpt allant de 01 à 09 ?
--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu et Cut Data Radars sur http://pagesperso-orange.fr/mdev/
Pour me contacter, cliquez ici :
http://cerbermail.com/?OT0Wnwyzph
"Thierry 46" a écrit dans le message de news:
4a6afe18$0$23445$STASZEWSKI André a écrit :Re,
Je viens de tester avec succès la procédure.
Vraiment super..
C'est pour moi un excellent support pédagogique avant tout !
J'ai résolu le problème des doublons dans le dernier maillon au niveau de
la procédure RemplissageTable en modifiant le code comme ci-dessous :
//Sauter les lignes dont la ville existe déjà puisqu'il ne peut exister
qu'une seule ville.
SI TableCherche(COL_Ville,gstCommuneEnCours:Ville)= -1 ALORS
TableAjouteLigne(TABLE_LstTrouve,gstCommuneEnCours:CodePostal,gstCommuneEnCours:Ville,gstCommuneEnCours:Departement)
FIN
Mais il aurait peut être été préférable de traiter les doublons dans un
niveau inférieur ? (gain en vitesse ?)
Qu'en pensez-vous ?
Re,
en fait pour avoir aussi les départements 01 à 09 il faut modifier la proc
RechCPall(): ainsi il ne devrait pas y avoir de doublon en interrogeant par
01, 02 etc...
Mais il y a des doublons: c'est normal car c'est sur le serveur (1936
doublon!). Recherchez 59000, et bien il va sortir en double, idem 59, donc
il faut bien traiter les doublons ....
Si la capture dure dans les 25 minutes, la méthode d'André pour la gestion
des doublons prend 8 minutes de plus ! Mais cela en enlève trop:
- la capture trouve 38784 lignes
- après un traitement séparé pour enlever les doublons reste: 36848 codes
- après le traitement d'André ne reste que 34176 codes !
Pourquoi: parce que une nom de ville peut être dans plusieurs départements
ex:
24460 Ligueux
33220 Ligueux
ou même:
59000 Lille
59800 Lille // cela descend au niveau de la rue
Pour ma part j'ai modifié RechCPall() en
// pas besoin de cette chaine
//sCpRech est une chaine
POUR nI_pos = 1 A 99
et
sURLRecherche =
ChaîneConstruit("http://www.codeposte.com/home.php?s_keyword="+NumériqueVersChaîne(nI_pos,"02d")+"&codepostalPage="+
nNumPage)
Je laisse le soin à l'auteur Cédric d'y apporter la touche finale.
Cordialement
Bonjour
J'ai exécuté l'extraction des codes postaux avec les valeurs de
départements 01 à 99 pour récupérer tous les codes postaux
comprenant également ceux des antilles ( 97x) et outre-mer (98x)
Dans rechCPAll()
POUR nI_pos = 01 A 99
Comme vous j'obtiens 38784 codes mais en supprimant les vrais doubles (
cle composée du code postal et du nom de la ville ) il ne reste que
36848 codes postaux.
Or j'ai toujours pensé qu'il y avait plus de 38000 codes postaux ( surtout
avec l'outre-mer compris )
Ne pensez-vous pas que l'extraction initiale ne prend pas tous les codes ?
Cordialement
Bonjour
J'ai exécuté l'extraction des codes postaux avec les valeurs de
départements 01 à 99 pour récupérer tous les codes postaux
comprenant également ceux des antilles ( 97x) et outre-mer (98x)
Dans rechCPAll()
POUR nI_pos = 01 A 99
Comme vous j'obtiens 38784 codes mais en supprimant les vrais doubles (
cle composée du code postal et du nom de la ville ) il ne reste que
36848 codes postaux.
Or j'ai toujours pensé qu'il y avait plus de 38000 codes postaux ( surtout
avec l'outre-mer compris )
Ne pensez-vous pas que l'extraction initiale ne prend pas tous les codes ?
Cordialement
Bonjour
J'ai exécuté l'extraction des codes postaux avec les valeurs de
départements 01 à 99 pour récupérer tous les codes postaux
comprenant également ceux des antilles ( 97x) et outre-mer (98x)
Dans rechCPAll()
POUR nI_pos = 01 A 99
Comme vous j'obtiens 38784 codes mais en supprimant les vrais doubles (
cle composée du code postal et du nom de la ville ) il ne reste que
36848 codes postaux.
Or j'ai toujours pensé qu'il y avait plus de 38000 codes postaux ( surtout
avec l'outre-mer compris )
Ne pensez-vous pas que l'extraction initiale ne prend pas tous les codes ?
Cordialement
Bonsoir André,
Note : Pour informations André, votre adresse mail (xxx)@tiscali.fr ne
fonctionne pas.
En revanche, si vous voulez, vous pouvez m'envoyer un mail, ce qui me
permettra de récupérer une adresse valide.
Bonsoir André,
Note : Pour informations André, votre adresse mail (xxx)@tiscali.fr ne
fonctionne pas.
En revanche, si vous voulez, vous pouvez m'envoyer un mail, ce qui me
permettra de récupérer une adresse valide.
Bonsoir André,
Note : Pour informations André, votre adresse mail (xxx)@tiscali.fr ne
fonctionne pas.
En revanche, si vous voulez, vous pouvez m'envoyer un mail, ce qui me
permettra de récupérer une adresse valide.
Bonsoir André,
Depuis hier j'ai repensé un peu le système d'interrogation.
Déjà je ne m'appuis plus sur le site www.codeposte.com mais sur le
site www.codespostaux.com qui est un peu plus simple à interpréter.
(Une seule page et pas d'image ou autres lien qui viennent "polluer"
le résultat de la requête) et qui en plus précise explicitement que
Codepostaux.com est une base de donnée qui permet de trouver
gratuitement tous les codes postaux en France, Suisse et Belgique.
Sinon, le moyen le plus simple pour éviter les doublons de manière
efficace, serait de faire un tableaucherche sur le tableau de
structure avant de rajouter une ligne, seul pb en Windev 10 cela est
impossible.
En revanche d'après l'aide de Windev 14 ce type de recherche est
apparemment possible, le hic est que ça ne fonctionne pas, la valeur
renvoyée par TableauCherche sur un tableau de structure, est
systématiquement -1 même si l'élément existe déjà dans le tableau.
Du coup je vais remodifier la procédure pour ne plus avoir un tableau
de structure, mais un tableau de chaines (tous les éléments seront
concaténés avec un séparateur) .
Le composant est quasiment prêt, il ne me reste plus que la
modification du type de tableau.
Celui-ci comprend déjà plusieurs procédures/fonctions :
- nbOccurrence=CP_Ville_Recherche(Eltrecherché est une chaine)
- nbOccurrence=CP_Ville_All()
- Valretour = recupValeur() où Valretour est une chaine du type (CP+tab
+nomVille+tab+Département+tab+Région+RC+CP+........) Utile si on veut
remplir une table ou une combo
- SaveInFile(nomFicExport est une chaine = "") (Si nomFicExport = ""
alors un sélecteur de répertoire apparaît permettant de sélectionnée
le répertoire d'exportation. Le fichier sera toujours de type CSV avec
TAB en séparateur de champs et RC en séparateur d'enregistrement.
- TestComposant() qui permet d'ouvrir une fenêtre pour tester les
différentes procédures et fonctions citées ci-dessus.
Dès demain, je pourrais le mettre à disposition.
Cordialement.
Cédric LECLERC.
Note : Pour informations André, votre adresse mail (xxx)@tiscali.fr ne
fonctionne pas.
En revanche, si vous voulez, vous pouvez m'envoyer un mail, ce qui me
permettra de récupérer une adresse valide.
Bonsoir André,
Depuis hier j'ai repensé un peu le système d'interrogation.
Déjà je ne m'appuis plus sur le site www.codeposte.com mais sur le
site www.codespostaux.com qui est un peu plus simple à interpréter.
(Une seule page et pas d'image ou autres lien qui viennent "polluer"
le résultat de la requête) et qui en plus précise explicitement que
Codepostaux.com est une base de donnée qui permet de trouver
gratuitement tous les codes postaux en France, Suisse et Belgique.
Sinon, le moyen le plus simple pour éviter les doublons de manière
efficace, serait de faire un tableaucherche sur le tableau de
structure avant de rajouter une ligne, seul pb en Windev 10 cela est
impossible.
En revanche d'après l'aide de Windev 14 ce type de recherche est
apparemment possible, le hic est que ça ne fonctionne pas, la valeur
renvoyée par TableauCherche sur un tableau de structure, est
systématiquement -1 même si l'élément existe déjà dans le tableau.
Du coup je vais remodifier la procédure pour ne plus avoir un tableau
de structure, mais un tableau de chaines (tous les éléments seront
concaténés avec un séparateur) .
Le composant est quasiment prêt, il ne me reste plus que la
modification du type de tableau.
Celui-ci comprend déjà plusieurs procédures/fonctions :
- nbOccurrence=CP_Ville_Recherche(Eltrecherché est une chaine)
- nbOccurrence=CP_Ville_All()
- Valretour = recupValeur() où Valretour est une chaine du type (CP+tab
+nomVille+tab+Département+tab+Région+RC+CP+........) Utile si on veut
remplir une table ou une combo
- SaveInFile(nomFicExport est une chaine = "") (Si nomFicExport = ""
alors un sélecteur de répertoire apparaît permettant de sélectionnée
le répertoire d'exportation. Le fichier sera toujours de type CSV avec
TAB en séparateur de champs et RC en séparateur d'enregistrement.
- TestComposant() qui permet d'ouvrir une fenêtre pour tester les
différentes procédures et fonctions citées ci-dessus.
Dès demain, je pourrais le mettre à disposition.
Cordialement.
Cédric LECLERC.
Note : Pour informations André, votre adresse mail (xxx)@tiscali.fr ne
fonctionne pas.
En revanche, si vous voulez, vous pouvez m'envoyer un mail, ce qui me
permettra de récupérer une adresse valide.
Bonsoir André,
Depuis hier j'ai repensé un peu le système d'interrogation.
Déjà je ne m'appuis plus sur le site www.codeposte.com mais sur le
site www.codespostaux.com qui est un peu plus simple à interpréter.
(Une seule page et pas d'image ou autres lien qui viennent "polluer"
le résultat de la requête) et qui en plus précise explicitement que
Codepostaux.com est une base de donnée qui permet de trouver
gratuitement tous les codes postaux en France, Suisse et Belgique.
Sinon, le moyen le plus simple pour éviter les doublons de manière
efficace, serait de faire un tableaucherche sur le tableau de
structure avant de rajouter une ligne, seul pb en Windev 10 cela est
impossible.
En revanche d'après l'aide de Windev 14 ce type de recherche est
apparemment possible, le hic est que ça ne fonctionne pas, la valeur
renvoyée par TableauCherche sur un tableau de structure, est
systématiquement -1 même si l'élément existe déjà dans le tableau.
Du coup je vais remodifier la procédure pour ne plus avoir un tableau
de structure, mais un tableau de chaines (tous les éléments seront
concaténés avec un séparateur) .
Le composant est quasiment prêt, il ne me reste plus que la
modification du type de tableau.
Celui-ci comprend déjà plusieurs procédures/fonctions :
- nbOccurrence=CP_Ville_Recherche(Eltrecherché est une chaine)
- nbOccurrence=CP_Ville_All()
- Valretour = recupValeur() où Valretour est une chaine du type (CP+tab
+nomVille+tab+Département+tab+Région+RC+CP+........) Utile si on veut
remplir une table ou une combo
- SaveInFile(nomFicExport est une chaine = "") (Si nomFicExport = ""
alors un sélecteur de répertoire apparaît permettant de sélectionnée
le répertoire d'exportation. Le fichier sera toujours de type CSV avec
TAB en séparateur de champs et RC en séparateur d'enregistrement.
- TestComposant() qui permet d'ouvrir une fenêtre pour tester les
différentes procédures et fonctions citées ci-dessus.
Dès demain, je pourrais le mettre à disposition.
Cordialement.
Cédric LECLERC.
Note : Pour informations André, votre adresse mail (xxx)@tiscali.fr ne
fonctionne pas.
En revanche, si vous voulez, vous pouvez m'envoyer un mail, ce qui me
permettra de récupérer une adresse valide.