|
rechercher contact android |
Started by alezan, Dec., 10 2018 4:44 PM - 33 replies |
| |
| | | |
|
| |
Registered member 47 messages |
|
Posted on December, 10 2018 - 4:44 PM |
bonjour, j'ai un soucis avec la fonction recherche. il me revoit vrai avec le code si dessous alors que le numéro de téléphone qui est extrait de ma chaine n'existe pas dans le répertoire ? pouvez vous me dire ou je loupe ? est ce dans le type une numéro de telephonne n'est peut être pas une chaine ?
POUR TOUT CHAÎNE sLigne de sContenuFichier SEPAREE PAR CRLF snumero est une chaîne snumero=ExtraitChaîne(sLigne,3,";") SI ContactCherche(contactTéléphone,snumero,mContact.TéléphoneMobile)=Vrai ALORS Info(ExtraitChaîne(sLigne,3,";")) |
| |
| |
| | | |
|
| | |
| |
Posted on December, 10 2018 - 4:49 PM |
Je ne connais pas la cause de votre problème mais la doc indique que la fonction ContactCherche ne doit plus être utilisée depuis la version 17 et qu'il faut utiliser ContactListe à la place. Je vous conseille donc vivement de suivre cette recommandation. |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 10 2018 - 5:29 PM |
merci je vais regarder dans se sens |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 10 2018 - 5:44 PM |
je suis tomber sur cette page la ? https://doc.pcsoft.fr/?1000020266&name=contactliste_fonction
mais je ne comprend pas comment faire ma recherche avec ce que je voulais faire ? *
mon besoin est celui ci
POUR TOUT CHAÎNE sLigne de sContenuFichier SEPAREE PAR CRLF
snumero est une chaîne snumero=ExtraitChaîne(sLigne,3,";")
SI ContactCherche(contactTéléphone,snumero,mContact.TéléphoneMobile)=Vrai ALORS Info(ExtraitChaîne(sLigne,3,";")) SINON mContact.Nom = ExtraitChaîne(sLigne,1,";") mContact.Prénom = ExtraitChaîne(sLigne,2,";") mContact.TéléphoneMobile = ExtraitChaîne(sLigne,3,";") ContactAjoute(contactTéléphone) Multitâche(-1) FIN FIN
est ce que tu pourrais m'aider a écrire la bonne syntaxe de recherche avec la fonction conactliste pour arriver a mon résultat ?
merci de ton aide |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 12 2018 - 9:54 AM |
wddev a écrit : > Je ne connais pas la cause de votre problème mais la doc indique que la fonction ContactCherche ne doit plus être utilisée depuis la version 17 et qu'il faut utiliser ContactListe à la place.
Pas tout à fait, il est marqué cela sur la documentation:
Cette fonction est déconseillée si vous utilisez des variables de type Contact
D'après la documentation en ligne, je ferais un code qui ressemblerait à cela :
gtabContacts = ContactListe(Null) bTrouve est un booléen=Faux POUR TOUT tContact de gtabContacts
FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 12 2018 - 2:55 PM |
@romulus001 merci de ton message. je n'y suis pas arrivé avec contacliste pff quel galère pour un truc qui semblait simple
j'ai changer mon fusil d'épaule. je compte taguer tout mes contact par le nom de ma société, puis tous les supprimer et les recréer a chaque MAJ
mais le code si dessous ne fonctionne pas je susi incapable de faire fonctionner contactcherche ??
SI ContactCherche(contactTéléphone,"DUCOURNAU",mContact.Société)=Vrai ALORS TANTQUE mContact.EnDehors = Faux ContactSupprime(contactTéléphone) ContactSuivant(contactTéléphone) Multitâche(-1) FIN FIN
le code si dessus me supprime tout les contact , même ceux dont mContact.Société est null !!
je ne comprend pas ou je me loupe. je me base pourtant sur cette exemple https://doc.pcsoft.fr/?1000006102&name=contactcherche_fonction
si quelqu'un pouvez m'aider merci ? |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 12 2018 - 3:08 PM |
je n'y suis pas arrivé avec contacliste Que voulez vous dire? |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 12 2018 - 4:37 PM |
je n'ai pas trouver les bonnes syntaxes pour faire ma mise a jour du contact ou sa création du contact. en effet tout les exemple de windev de création et miise à jour se font avec mContact https://doc.pcsoft.fr/?1000006104&name=contactmodifie_fonction du coup je ne maitrise pas assez la mise à jour de contact android en passant par contacliste
après je débute en windev et je n'ai fait que des truc facile jusqu'a présent. même si j'ai déjà des notion de dev et algo sur d'autre langage. ce je voudrais faire a partir du fichier csv que j'importe depuis mon ftp c'est créer les contact ou mettre à jour le nom et le prénom si le numéro de telephonne existe déja. mon fichier csv se compose de 3 champs (nom, prénom, téléphone) séparer par des ;
si dessous tout mon code ou j'ai rajouter se que tu 'a conseillé et ou je n'ai pas trouvez quoi mettre après le
SI tContact..Téléphone=ExtraitChaîne(sLigne,3,";") ALORS le code complet pour que tu comprenne mieux
tContact est un Contact ResRepEnCours est une chaîne ResRepEnCours = fRepEnCours() sContenuFichier est une chaîne sLigne est une chaîne gtabContacts est un tableau de Contacts nConnexion est un entier nConnexion = FTPConnecte("137.74.171.22", "contact", "1234") SI nConnexion = -1 ALORS Erreur("La connexion au serveur n'a pas pu être établie") SINON SI FTPRécupère(nConnexion, "/export.csv", ResRepEnCours) = Vrai ALORS Info("Transfert terminé") SINON Erreur("Echec du transfert") FIN FIN
sContenuFichier = fChargeTexte("export.csv") Sablier(Vrai)
POUR TOUT CHAÎNE sLigne de sContenuFichier SEPAREE PAR CRLF gtabContacts = ContactListe(Null) bTrouve est un booléen=Faux POUR TOUT tContact de gtabContacts SI tContact..Téléphone=ExtraitChaîne(sLigne,3,";") ALORS FIN FIN mContact.Nom = ExtraitChaîne(sLigne,1,";") mContact.Prénom = ExtraitChaîne(sLigne,2,";") mContact.TéléphoneMobile = ExtraitChaîne(sLigne,3,";") mContact.Société="DUCOURNAU" ContactAjoute(contactTéléphone) Multitâche(-1) FIN
Sablier(Faux) Info("Terminé") Message modified, December, 12 2018 - 4:44 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 12 2018 - 5:40 PM |
Je pense qu'avant de faire une mise à jour ou une création, il faudrait faire le test suivant :
POUR TOUT tContact de gtabContacts info("Comparaison entre "+tContact..Téléphone+" et "+ExtraitChaîne(sLigne,3,";")) FIN
Car comme je disais plus haut, je ne sais pas comment sont formatés les numéros de téléphone, en faisant comme cela, on sait ce qui va être comparé. Commentez ensuite la ligne suivante :
ContactAjoute(contactTéléphone) |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 12 2018 - 5:55 PM |
Quand je mets ton code j'ai un erreur de compilation dans windevmobile Type incompatible au niveau des phrase entre "" du coup j'ai mis
POUR TOUT tContact de gtabContacts info(tContact..Téléphone+ExtraitChaîne(sLigne,3,";")) FIN et j'ai une erreur dans l'appli opperation + interdite entre une valeur null et une chaineMessage modified, December, 12 2018 - 5:57 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 12 2018 - 6:00 PM |
je viens de le voir à l'instant, tContact..Téléphone est en fait un tableau de numéro de téléphones, du coup, mon code doit devenir ainsi :
POUR TOUT tContact de gtabContacts POUR TOUT loop_numeroTelephone DE tContact..Téléphone info("Comparaison entre "+loop_numeroTelephone +" du contact "+ tContact..NomAffiché+" et du numéro "+ExtraitChaîne(sLigne,3,";")) FIN FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 12 2018 - 6:04 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 12 2018 - 6:08 PM |
le résultat :
en même temps je me rend compte que j'ai 300 contacts. est ce que cela va pas être lourd la comparaison de 300*300 contact ?Message modified, December, 12 2018 - 6:16 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 9:09 AM |
je te remercie de ton aide. on voit avec ton exemple que les numéro son bon pour la comparaison. mais en suite je ne suis pas arriver a trouver la syntaxe pour lier les deux numéro de téléphones et encore moins faire la mise a jours. j'ai tester les deux code si dessous aucun ne marche ?
POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF gtabContacts = ContactListe(Null) bTrouve est un booléen=Faux POUR TOUT tContact DE gtabContacts POUR TOUT loop_numeroTelephone DE tContact..Téléphone SI loop_numeroTelephone=ExtraitChaîne(sLigne,3,";") ALORS Info("Comparaison entre "+loop_numeroTelephone +" du contact "+ tContact..NomAffiché+" et du numéro "+ExtraitChaîne(sLigne,3,";")) FIN FIN FIN
ou
POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF gtabContacts = ContactListe(Null) bTrouve est un booléen=Faux POUR TOUT tContact DE gtabContacts POUR TOUT loop_numeroTelephone DE tContact..Téléphone SI mContact.TéléphoneMobile=ExtraitChaîne(sLigne,3,";") ALORS Info("Comparaison entre "+loop_numeroTelephone +" du contact "+ tContact..NomAffiché+" et du numéro "+ExtraitChaîne(sLigne,3,";")) FIN FIN FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 9:46 AM |
Il n'est pas nécessaire de mettre ce bout de code suivant à l'intérieur de la boucle 1 :
gtabContacts = ContactListe(Null)
Déplacez-là juste avant d'entrer dans la boucle. Le traitement sera long, en effet, surtout que là, je ne sais pas si la recherche se fait sur le téléphone, sur la carte SIM ou les 2... Quand vous dites
j'ai tester les deux code si dessous aucun ne marche ? Qu'est-ce qui ne marche pas? les 2 codes font juste une comparaison des numéros de téléphone. |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 10:01 AM |
ok je place gtabContacts = ContactListe(Null) au dessus de la boucle ?
j'ai tester le 1er code SI loop_numeroTelephone=ExtraitChaîne(sLigne,3,";") ALORS me renvoi une erreur sur l’application 'L'opperation '=' est interdite entre un élément de type Téléphone et un élément de type chaine ? du coup je ne sais pas comment faire la comparaison ?
le segond code SI mContact.TéléphoneMobile=ExtraitChaîne(sLigne,3,";") ALORS ne fait rien il ne passe jamais dans le "alors" |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 10:19 AM |
Remplacez
SI loop_numeroTelephone=ExtraitChaîne(sLigne,3,";") ALORS par
SI loop_numeroTelephone..Numéro=ExtraitChaîne(sLigne,3,";") ALORS |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 10:26 AM |
super avec
SI loop_numeroTelephone..Numéro=ExtraitChaîne(sLigne,3,";") ALORS la comparaison se fait bien . et le message d'info montre bien qu'il retrouve le lien entre les numéros qu'est ce que ^peux mettre comme syntaxe après le alors pour mettre a jour le contatc ou le créer. ? je suppose que je ne doit pas utilise les fonction contactajoute() ou conatctmodifie() qui vont avec mContact ? |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 10:42 AM |
je verrais un code dans ce genre là (non testé):
POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF bTrouve est un booléen=Faux sContact est un Contact POUR TOUT tContact DE gtabContacts POUR TOUT loop_numeroTelephone DE tContact..Téléphone SI loop_numeroTelephone..Numéro=ExtraitChaîne(sLigne,3,";") ALORS bTrouve=Vrai sContact = tContact SORTIR //je quitte la boucle POUR TOUT loop_numeroTelephone DE tContact..Téléphone FIN FIN SI bTrouve ALORS //si j'ai trouvé le contact avec le bon numéro de téléphone SORTIR //je quitte la boucle POUR TOUT tContact DE gtabContacts FIN FIN SI bTrouve ALORS //je met à jour le contact à l'aide de sContact SINON //je créée le contact à l'aide de sContact FIN FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 10:48 AM |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 11:03 AM |
alors j'ai fait cela
POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF bTrouve est un booléen=Faux sContact est un Contact POUR TOUT tContact DE gtabContacts POUR TOUT loop_numeroTelephone DE tContact..Téléphone SI loop_numeroTelephone..Numéro=ExtraitChaîne(sLigne,3,";") ALORS bTrouve=Vrai sContact = tContact SORTIR //je quitte la boucle POUR TOUT loop_numeroTelephone DE tContact..Téléphone FIN FIN SI bTrouve ALORS //si j'ai trouvé le contact avec le bon numéro de téléphone SORTIR //je quitte la boucle POUR TOUT tContact DE gtabContacts FIN FIN SI bTrouve ALORS //je met à jour le contact à l'aide de sContact mContact.Nom = ExtraitChaîne(sLigne,1,";") mContact.Prénom = ExtraitChaîne(sLigne,2,";") mContact.Société="DUCOURNAU" ContactModifie(contactTéléphone) Multitâche(-1) SINON // on créer le contact mContact.Nom = ExtraitChaîne(sLigne,1,";") mContact.Prénom = ExtraitChaîne(sLigne,2,";") mContact.TéléphoneMobile = ExtraitChaîne(sLigne,3,";") mContact.Société="DUCOURNAU" ContactAjoute(contactTéléphone) Multitâche(-1) FIN FIN
pour la création c'est ok, mais cela ne mais pas ajour le contact si il existe ? |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 11:18 AM |
avec le code si dessous en cas de mise a jour j'ai j'ai le message : impossible d'effectué l’opération car il n'y a pas de contact courant ? |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 11:23 AM |
vous avez confondu
ContactModifie(contactTéléphone) avec
ContactModifie(sContact ) idem pour ContactAjoute De plus, pourquoi utiliser mContact et non sContact?Message modified, December, 13 2018 - 11:24 AM |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 11:25 AM |
j'ai tanté cela, masui sans résulat le contact ne se mets pas a jour ?
SI bTrouve ALORS //je met à jour le contact à l'aide de sContact sContact..Nom = ExtraitChaîne(sLigne,1,";") sContact..Prénom = ExtraitChaîne(sLigne,2,";") ContactModifie(sContact) Multitâche(-1) |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 11:28 AM |
si pas ContactModifie(sContact) Alors Erreur("Le contact n'a pas été mis à jour",ErreurInfo) FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 11:35 AM |
alors franchement bizarre le messagae : le conact n'a pas été mis à jour impossible de modifier le contact car il n'a pas étai retrouver dans la base de contatc de l'appareil ? le code complet de l'action ?
tContact est un Contact ResRepEnCours est une chaîne ResRepEnCours = fRepEnCours() sContenuFichier est une chaîne sLigne est une chaîne gtabContacts est un tableau de Contacts gtabContacts = ContactListe(Null) nConnexion est un entier nConnexion = FTPConnecte("137.74.171.22", "contact", "1234") SI nConnexion = -1 ALORS Erreur("La connexion au serveur n'a pas pu être établie") SINON SI FTPRécupère(nConnexion, "/export.csv", ResRepEnCours) = Vrai ALORS Info("Transfert terminé") SINON Erreur("Echec du transfert") FIN FIN // Chargement en mémoire du contenu du fichier sContenuFichier = fChargeTexte("export.csv") Sablier(Vrai)
POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF bTrouve est un booléen=Faux sContact est un Contact POUR TOUT tContact DE gtabContacts POUR TOUT loop_numeroTelephone DE tContact..Téléphone SI loop_numeroTelephone..Numéro=ExtraitChaîne(sLigne,3,";") ALORS bTrouve=Vrai sContact = tContact SORTIR //je quitte la boucle POUR TOUT loop_numeroTelephone DE tContact..Téléphone FIN FIN SI bTrouve ALORS //si j'ai trouvé le contact avec le bon numéro de téléphone SORTIR //je quitte la boucle POUR TOUT tContact DE gtabContacts FIN FIN SI bTrouve ALORS //je met à jour le contact à l'aide de sContact //je met à jour le contact à l'aide de sContact sContact..Nom = ExtraitChaîne(sLigne,1,";") sContact..Prénom = ExtraitChaîne(sLigne,2,";") ContactModifie(sContact) SI PAS ContactModifie(sContact) ALORS Erreur("Le contact n'a pas été mis à jour",ErreurInfo) FIN Multitâche(-1) SINON // on créer le contact mContact.Nom = ExtraitChaîne(sLigne,1,";") mContact.Prénom = ExtraitChaîne(sLigne,2,";") mContact.TéléphoneMobile = ExtraitChaîne(sLigne,3,";") mContact.Société="DUCOURNAU" ContactAjoute(contactTéléphone) Multitâche(-1) FIN FIN // on créer le contact // mContact.Nom = ExtraitChaîne(sLigne,1,";") // mContact.Prénom = ExtraitChaîne(sLigne,2,";") // mContact.TéléphoneMobile = ExtraitChaîne(sLigne,3,";") // mContact.Société="DUCOURNAU" // ContactAjoute(contactTéléphone) // Multitâche(-1)
Sablier(Faux) Info("Terminé") |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 11:38 AM |
Ou peut être faites appel à ContactSélectionne avant de modifier les infos du contact, n'ayant jamais fait appel à la notion de contacts, je fais ça à l'aveugle. |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 11:43 AM |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 2:28 PM |
D'après ce que je comprends, votre manière de procédé n'est pas gérable en WM car non compatible avec les fonctions wlangage qui ont été définies, la recherche ne peut s'appliquer que sur l'un des attributs suivants : - email - Nom - Prénom - Société
Il faut que dans votre recherche, vous utilisiez cette manière de procédé. Exemple pour illustrer : mon contact Bernard avec pour numéro de portable 06.01.02.03.04 qui est devenu le 06.01.02.03.05
Du coup, il ne faudrait pas avoir le contact Bernard 2 fois, l'un avec l'ancien numéro et le nouveau mais simplement changer son numéro de téléphone. |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 4:56 PM |
alors que moi c'est l'inverse don j'ai besoin, les numéro ne change pas c'est une liste fixe de numéro (300 ligne) mais c'est le nom de la personnes a qui il est attribué le numéro qui peut changer (démission nouvelle embauche etc. )
quel est attribut correspondant a société dans la recherche, je ne l'ai pas trouver ? car je vais tenter de tagué tout mes contact avec le nom de ma société, pour supprimer tous les contact tagué et tout recréer en suite. le résultat sera le même.Message modified, December, 13 2018 - 5:01 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 352 messages Popularité : +12 (18 votes) |
|
Posted on December, 13 2018 - 5:22 PM |
Je ne trouve pas la propriété Société sur un objet de type Contact mais je la trouve sur mContact... Sinon, votre fichier texte, que contient-il précisément? la liste complète à jour des contacts ou bien les modifications / nouveaux contacts seulement? Dans le cas où il s'agit de la liste complète et à jour, le mieux est de supprimer tous les contacts et tous les créer de nouveau à l'aide du fichier d'import. |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 13 2018 - 5:50 PM |
oui il contient tout les contact, mais je ne voudrais pas supprimer tout les contact, mais uniquement les contact de la société au cas ou il est rajouter un contact manuellement d’où mon idée de ta&gué les contact société pour touts les supprimer ? a votre avis sur quel champs les tagué pour les supprimer en filtrant ceux de la société ? |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 14 2018 - 5:56 PM |
alors j'ai fini par trouver un peu grâce a toi. voici le code qui fonctionne il faut faire le filtre dans contactliste
sContenuFichier = fChargeTexte("export.csv") POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF gtabContacts = ContactListe(Null,contactTéléphone,ExtraitChaîne(sLigne,3,",")) POUR TOUT tContact DE gtabContacts // suppression des contacts ContactSupprime(tContact) Multitâche(-1) FIN FIN
Merci du temps que tu as passé a m'aider..Message modified, December, 14 2018 - 5:57 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 14 2018 - 6:04 PM |
petit explication pour les future lecteur : avec l'extrait de code si dessus :
//je charge mon fichier csv sContenuFichier = fChargeTexte("export.csv") //je parcoure chaque ligne de mon fichier POUR TOUT CHAÎNE sLigne DE sContenuFichier SEPAREE PAR CRLF //pour chaque ligne de mon fichier je recherche avec conatcliste si le numero de tel existe dans un contact gtabContacts = ContactListe(Null,contactTéléphone,ExtraitChaîne(sLigne,3,",")) //je parcoure chaque contact trouvé dans ma liste POUR TOUT tContact DE gtabContacts // suppression des contacts ContactSupprime(tContact) Multitâche(-1) FIN FIN
au passage pour 300 numeros moins de 30 secondes de temps de traitementMessage modified, December, 14 2018 - 6:06 PM |
| |
| |
| | | |
|
| | | | |
| | |
|