begin process at 2013 05 24 16:21:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > UN RÉPERTOIRE TÉLÉPHONIQUE PERSONNEL, PUISSANT ET INTUITIF

UN RÉPERTOIRE TÉLÉPHONIQUE PERSONNEL, PUISSANT ET INTUITIF


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :répertoire personnel, recherche avancée, impression étiquettes, iimage associée, appels téléphoniques Niveau :Initié Date de création :22/07/2012 Date de mise à jour :20/10/2012 07:44:33 Vu / téléchargé :3 087 / 615

Auteur : jacques-antoine

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Un répertoire de plus? Non, celui-ci est muni de fonctions qu'on trouve rarement au même endroit et parfois pas du tout dans ce domaine.
Il est constitué de l'identité complète, de la catégorie (famille, amis, commerce,...), d'une zone d'informations supplémentaires, de 2 numéros d'appel en plus des numéros ordinaires (fixe, portable, fax, travail) zoomables au passage de la souris, d'une fonction de recherche sur l'ensemble des éléments (mais pas l'adresse), sur la ville et le téléphone, la catégorie, tout ou partie d'un ou plusieurs élément. Une photo ou un plan d'accès peut être ajouté aux données.
En plus des fonctions normales pour un répertoire, il y en a deux autres :
- la composition d'un numéro, via un modem connecté à l'un des ports COM, avec une fonction de test du modem,
- l'impression d'étiquettes (destinataire et expéditeur) pour les envois postaux.
Une aide détaillée est fournie.
Précisions : les données sont placées dans un fichier, plus simple à utiliser qu'une base de données, laquelle n'est pas toujours présente chez l'utilisateur. L'adaptation est possible moyennant la modification des procédures de lecture/écriture, rangées à part, et la création de l'environnement base de données.


 Conclusion

Un outil puissant mais simple à utiliser de façon intuitive, l'aide n'étant là que pour préciser certains points. La fonction d'impression de l'image est ajoutée : elle est utile quand il s'agit d'un plan de localisation d'une adresse ou d'identifier une entrée.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

23 juillet 2012 17:44:36 :
code de récupération d'erreur sur accès port COM inopérant : corrigé.
23 juillet 2012 18:13:31 :
Correction d'une faille dans la saisie d'un numéro de téléphone qui aurait dû être interdite (la saisie, pas la faille, quoique...).
06 août 2012 10:39:16 :
quelques modifications mineures, notamment l'intégration du protocole https pour la connexion à des sites sécurisés.
09 août 2012 09:50:23 :
suppression d'un bout de code qui n'aurait pas dû se trouver là où il était : ce qu'il faisait était fait ailleurs et mieux, donc il s'agissait d'un doublon mal foutu. Prise en compte des fichiers de longueur 0. Ajout de quelques commentaires.
09 août 2012 10:53:18 :
Ajout du code de fermeture de la liaison modem
10 août 2012 10:29:48 :
intégration d'une fonction de test de modem et mise à jour de l'aide
18 août 2012 10:58:02 :
Réorganisation de la form principale pour afficher l'image sous forme de vignette et intégration du code d'impression, plus quelques âneries corrigées. Ajout d'un bout de code pour traiter le numéro de standard : je ne dispose pas de cet équipement, donc je ne sais pas si ça fonctionne.
23 août 2012 11:48:16 :
quelques optimisations et améliorations, plus la gestion de la civilité en impression
03 octobre 2012 09:55:19 :
Mise à jour du fichier lisez-moi.txt
20 octobre 2012 07:44:43 :
remise en place d'un élément décalé à l'affichage, amélioration du traitement des numéros de téléphone (cas des numéros < 10 chiffres), ajout de l'exécutable au zip

 Sources du même auteur

Source avec Zip APPLICATIONS DE SUIVI DE LA GLYCÉMIE POUR LES DIABÉTIQUES
Source avec Zip RÉDUCTION DE LA TAILLE D'UNE IMAGE
Source avec Zip ENTRETIEN D'IMPRIMANTE, VERSION PARAMÉTRÉE
Source avec Zip IMPRESSION D'ENTRETIEN DE L'IMPRIMANTE
Source avec Zip ENTRETIENT D'IMPRIMANTE

 Sources de la même categorie

Source avec une capture Source .NET (Dotnet) CLASSE D'UTILISATION DU SERVICE DE TRADUCTION MICROSOFT BING par blq
Source avec Zip APPLICATIONS DE SUIVI DE LA GLYCÉMIE POUR LES DIABÉTIQUES par jacques-antoine
Source avec Zip GESTION ECOLAGE par lerave
Source avec Zip RÉDUCTION DE LA TAILLE D'UNE IMAGE par jacques-antoine
Source avec Zip [VBA] OBTENIR L'HANDLE DE LA LISTE DÉROULANTE D'UN COMBOBOX ... par Philippe734

Commentaires et avis

Commentaire de ghuysmans99 le 22/07/2012 14:56:53

"les données sont placées dans un fichier, plus simple à utiliser qu'une base de données, laquelle n'est pas toujours présente chez l'utilisateur."

Même sans avoir installé Access, on peut quand même faire tourner une application qui utilise ce type de BDD. Le driver est présent par défaut sous Windows (à partir de Win2000 je crois)


Crash au premier lancement à la ligne "MSComm1.PortOpen=True", "Invalid port number".
Une gestion d'erreurs aurait été la bienvenue...

Commentaire de jacques-antoine le 22/07/2012 18:26:15

j'ai un vieux système (Windows 98E) qui a migré vers XP Pro : je n'ai pas tous les logiciels "modernes" et j'ai donc fait avec ce que j'ai. Ceci dit, pour le commun des mortels, un fichier fait très bien l'affaire et c'est aussi rapide, sinon plus qu'une BDD. Mais, comme je l'ai dit, chacun est libre d'en utiliser une, à charge pour lui d'écrire le code : les procédures d'entrée/sorties sont regroupées au même endroit dans ce but (voir Repertoire_dcl dans les modules).

La gestion d'erreur était prévue mais mal foutue... Du coup, on sautait le code ad hoc. C'est corrigé mais ça n'explique pas le plantage, probablement dû à des circonstances locales, peut-être un problème de modem et/ou de code de commande : le mien est un Selfmemory 2000 à 56k et il ne cause pas de soucis, sauf qu'il faut parfois le réinitialiser.

Maintenant une question : comment fait-on pour pour remplacer l'un des éléments dans un ensemble?

En attendant, voici le code corrigé, qui remplace le contenu de la procédure Pb_composer_Click() de Form_composer :
<--------------------------------
Dim i As Integer
Dim lgr As Integer
Dim Commande, Buffer, poubelle As String

Erreur = NON

lgr = Len(Num_tel)
If lgr < 10 Then
   Erreur = OUI
   MsgBox "Numéro incomplet : longueur minimum de 10 chiffres"
   Exit Sub
End If

Commande = "ATDT" + Num_tel + ";" + vbCr
MSComm1.CommPort = Num_port
MSComm1.Settings = "9600,N,8,1"

On Error GoTo plantage

MSComm1.PortOpen = True

MSComm1.InBufferCount = 0              ' vidage du tampon d'entrée
MSComm1.Output = Commande              ' envoi du numéro pour composition

Timer_port.Enabled = True              ' limitation de l'attente : 10 secondes
Do
   poubelle = DoEvents()               ' attendre la réponse OK du modem
   If MSComm1.InBufferCount Then       ' lecture des données du tampon
      Buffer = Buffer + MSComm1.Input
      If InStr(Buffer, "OK") Then      ' réponse = OK : décrocher le combiné
         Timer_port.Enabled = False
         Beep
         MsgBox "Décrochez le combiné ou prenez la ligne puis cliquez sur OK"
         Exit Do
      End If
   End If
Loop

MSComm1.Output = "ATH" + vbCr          ' déconnexion du modem
MSComm1.PortOpen = False               ' fermeture du port
Exit Sub

plantage:

Erreur = OUI
MsgBox "Incident sur le port COM" & Num_port & ". Erreur " & Err.Number & "(" & Err.Description & ")"
<--------------------------------

Commentaire de ghuysmans99 le 22/07/2012 20:27:50

N'ayant pas de modem (je pourrais essayer de faire fonctionner ça avec mon portable via Bluetooth, vu qu'il a l'air de simuler un modem, mais je n'ai jamais vraiment regardé comment faire), j'ai simplement voulu voir ce qu'elle faisait (en ne pensant pas que ça ne fonctionnerait pas "out of the box"). L'erreur se produit lorsque tu affectes le n° de port. J'ai essayé de mettre le On Error Resume Next devant et ça ne plante plus :)

En mettant "au hasard" 1234567 comme n° de mobile, l'appli se crashe
dans la fonction traiter_numeros_tel(num), dans la seconde boucle :
fin = Right(num, lgr - i) 'lgr-i=10-11

Pour le code source :
* C'est agréable de lire du code indenté et commenté
* Dommage qu'il y ait autant de variables globales...
* Certains groupes de variables (Num_ent->Cat_val et Num_ent_tmp...)
pourraient être remplacés par des Types : tu définis une seule fois un type
Entree [sans accents, je ne sais pas si ce bon vieux VB6 les apprécie toujours]
avec Num,Cat,Nom...->Cat à l'intérieur et ensuite tu peux faire
Public Ent As Entree, Ent_Tmp As Entree (et y accéder via Ent.Num, par ex.)
* La documentation est claire (schémas...)
* L'ouverture du navigateur sur une page peut se faire via ShellExecute :
Call ShellExecute(me.hWnd, "OPEN", nomFichierOuURL, "", "", SW_SHOWNORMAL)

Je n'ai pas trop compris ta question : quel ensemble ?

Commentaire de jacques-antoine le 23/07/2012 18:19:02

ghuysmans99

je voulais savoir comment remplacer l'un des éléments de la source... J'ai trouvé mais il faut renvoyer le zip complet.

Les variables globales, c'est une habitude qui me permet de m'affranchir des conneries, du type variable locale utilisée ailleurs et tronche quand ça ne fonctionne pas. Quand une variable est susceptible d'être utilisée à plusieurs endroits, je la mets en global - avec son initiale en majuscule - ce qui, au passage, me permet de la reconnaître comme globale et évite le passage d'arguments et les erreurs qui vont avec.

Ta suggestion de définir un type revient en quelque sorte à déclarer une structure pour laquelle il faut ensuite qualifier chaque élément. Je trouve que ça alourdit le code plus qu'autre chose puisque, au final, ça revient au même.

Pour le plantage que tu signales, j'attends un numéro d'au moins 10 caractères, pris obligatoirement dans la liste et là, il y a un contrôle strict du numéro, soit en ajout, soit en modif : jamais moins de 10 caractères numériques plus des espaces, des tirets, ou des deux points séparateurs, que je vire au moment de l'utilisation. En fait, il manquait un Locked = True dans les zones des numéros qui en empêche la saisie, laquelle peut être fantaisiste, la preuve. Comme quoi on ne verrouille jamais assez.

L'appel au navigateur se fait via une vieille procédure qui fonctionne et que je recopie au gré de ce que je ponds comme code, donc pas la peine de la remettre en question pour un effet identique.

C'est corrigé : la saisie d'un numéro est maintenant impossible. Il y aura sûrement d'autres âneries que je n'ai pas repérées...

Commentaire de ghuysmans99 le 23/07/2012 18:47:25

"les erreurs qui vont avec" : avec Option Explicit et des fonctions qui ont des paramètres avec des noms parlants, pas de problème... Des millions d'applications fonctionnent comme ça. Le problème avec les globales c'est qu'on ne voit pas directement ce qui leur arrive (quelle fonction/sub y a accès), et que ça prend de la mémoire pour rien (quoiqu'ici, ça n'ait pas d'importance, c'est seulement une question de "bonnes pratiques").

Le lancement du navigateur ne fonctionne pas sous Win7 (pas testé sous d'autres OS) : l'URL dans la barre est "http://aide_repertoire/Aide_repertoire.html".
La méthode que j'ai proposée fonctionne (testée). Attention, il faut lui donner un chemin complet vers le fichier - utilise App.Path.

Commentaire de JLN le 30/07/2012 09:16:00 10/10

C'est vrai il existe d'autre applis sur le sujet, mais là c'est du concret, très complet, même si cela reste à améliorer.
Dommage que nos machines actuelles ne comportent plus de port serie, et du coup les modems se font rares.
De petites interfaces filaires donnent un port serie depuis un port USB, même moins performant qu'un vrai port COM, pour les modems c'est suffisant.
Rien que pour le partage d'une applis aussi avancé (je n'ai pas encore regardé le code) je met 10 !

Commentaire de jacques-antoine le 06/08/2012 10:30:30

pour ghuysmans99

Je ne mets jamais Option Explicit parce que je déclare systématiquement toutes les variables que j'utilise : celles déclarées en global commencent toutes par une majuscule qui les distingue des autres, les constantes sont totalement en majuscules et le tout est placé dans un module séparé du reste (.bas). Chacun a ses petites habitudes et les miennes me permettent d'avoir un code "propre", évident à lire donc à mettre au point (je sais immédiatement où ma variable est déclarée) et les commentaires plus qu'abondants.

Je n'ai que Windows XP pro, je ne peux donc tester que sous ce système. De plus, l'adresse dans la barre du navigateur devrait être de la forme

file:///[C:/]Aide_repertoire/Aide_repertoire.html
et non
http://Aide_repertoire/Aide_repertoire.html
qui suppose que l'exécutable se trouve sur un site Internet.

Pour que l'affichage de l'aide se fasse, il suffit que le répertoire d'aide soit sous celui de l'exécutable, ce qui me paraît tomber sous le sens, libre à qui le veut de modifier ce schéma et donc de modifier le source en conséquence...

J'ai ajouté au zip un fichier Lisez-moi qui donne les indications nécessaires relativement à l'arborescence attendue. Ce fichier était présent autrefois dans le zip, mais il a sauté au cours des différentes manips, sans que je m'en aperçoive.

Pour JLN

merci du soutien "les yeux fermés".... Je regrette aussi l'absence des ports série dans les nouvelles bécanes : les fabricants doivent penser que tout le monde fonctionne en mode USB ou wi-fi et que les autres méthodes sont ringardes. Si le progrès à parfois du bon, il est trop souvent une incitation au toujours plus qui n'a aucune nécessité pratique : c'est juste une nouvelle source de fric. Il n'y a qu'à regarder la foire d'empoigne actuelle avec les e-trucmuches : portables, tablettes, etc... Derrière tout ça, pas grand chose d'utile mais un gros tas de pognon à ramasser. Navrant.

Commentaire de ghuysmans99 le 07/08/2012 08:44:11

J'avais testé l'aide en ne modifiant pas l'arborescence...

Commentaire de jacques-antoine le 07/08/2012 09:50:44

pour ghuysmans99

J'ai quand même modifié en fonction de la remarque et le chemin complet figure à présent dans l'adresse, mais on ne tombe sur cet os que quand on utilise Internet Explorer, une connerie de plus de ce navigateur à la noix qui, quand le chemin n'est pas complet, ajoute http:// devant, une hérésie contraire à toutes les règles : un fichier n'est pas une adresse de site, il est local relativement à une application elle-même locale, sauf spécification contraire dûment définie dans l'adresse, en faisant figurer le nom du protocole http://... De ce point de vue, Firefox et Safari fonctionnent parfaitement, eux.

Commentaire de JLN le 07/08/2012 10:11:36

Pour jacques-antoine
Pour moi qui fait de la domotique avant même que ce mot ne veuille dire quelques choses pour le commun des mortels, la disparition du port parallèle est la pire chose qui soit arrivé, car les cartes et cordons du commerce vendus pour soit disant palier à ce manque ne le sont pas. Ces interfaces ne peuvent être reliées qu'a une imprimante.
J'en viens à ton applis, je teste vraiment demain (pas encore le temps aujourd'hui) mais c'est promis, je viens mettre mon avis dès que c'est fait.

Commentaire de JLN le 07/08/2012 10:40:26

Si tout de même, lors d'un lancement, j'ai utilisé le bouton "Consulter un annuaire" et là on se heurte à l'absence du fichier Nagigateur.rep tu devrais avoir plus de rigueur sur la présence et la taille des fichiers (le fichier peut être là mais de taille zero). Quand je dis rigueur, j'entend par là que le programme vérifie la présence et avant d'utiliser, vérifie la véracité des données (quelques fois la vérification de la taille suffit) Tu peux prévoir la création automatique des fichiers absents avec un contenu par défaut par exemple (pas forcément toujours possible, à voir...) Les champs nom et prénom mettent bien les majuscule où il faut, mais tu peux aussi utiliser le lostfocus pour que l'utilisateur puisse voir avant validation... Comme je te l'ai dis, demain je teste vraiment et je reviens ici donner mon avis.

Commentaire de JLN le 08/08/2012 14:32:10

J'ai par le passé développé des applis dans mon boulot (jeune retraité) necessitant l'utilisation de modem, je te donnes des tuyaux sur certaines choses à faire avant d'utiliser un modem compatible protocole AT cela évite les plantages du modem et de la machine et ces paramètres fonctionnent sur la plupart des modems AT.

Initialisation du modem (à faire à chacune des prises de main) ==> "ATV1Q0&A1&K6&R\N"
Pour numéroter (mais ca tu l'utilises déjà) ==> "ATDT"
Pour raccrocher ==> "+++ATH0"
Tester la présence (et le type) ==> "AT/I&V"


Commentaire de jacques-antoine le 09/08/2012 10:50:41

je ne sais pas trop ce qui se passe mais certains messages n'apparaissent plus (ici les 4 derniers), quand j'y accède depuis le mél d'information d'ajout d'un commentaire : je les ai vus hier et aujourd'hui ils ne sont plus là... Le plus curieux c'est que, quand je recharge le zip, je retrouve toutes mes billes !

Pour JLN : le plantage vient d'un bout de code qui aurait dû sauter mais que j'ai oublié là : dans toutes mes procédures un contrôle de présence est fait avant d'ouvrir un fichier et c'est facile à vérifier en faisant une recherche sur les instructions Open. En revanche, c'est vrai que je ne testais pas les fichiers de longueur 0 mais, s'agissant de fichiers de service, si on tombe sur ce cas, c'est qu'on a bricolé ce qui n'aurait pas dû l'être. Alors, mea culpa pour l'oubli de ce bout de code.

Tout est corrigé, en attendant la suite des coups de bâton.

Pour le lostfocus, je ne vois pas bien son intérêt : quand il y a erreur, la validation le signale. De plus, il ne fonctionne que quand on clique ailleurs et ça risque de désorienter : en général, quand il y a un message d'erreur, on a souvent tendance à ne se focaliser que sur ce qu'on était en train de faire et non sur ce qu'on a fait avant, même si le message est parfaitement clair, si tant est qu'il est lu...

Pour ce qui est de ta suggestion de modification du code destiné au modem, je l'ai prise en compte : la modification est faite. Pour le test du modem, j'ai une appli qui contient cette fonctionnalité et je vais ajouter son code au répertoire : elle provient d'un source pris ici et mis en forme selon mon goût.

Commentaire de JLN le 09/08/2012 13:57:48

Pour le lostfocus je ne voulais pas parler des erreurs eventuelles, ca comme tu le dis tu le traite au moment de la validation et c'est suffisant, j'ai bien compris l'idée.
Non, ce que je voulais dire, c'est seulement de faire apparaitre juste le traitement des majuscules, du coup l'utilisateur dès la première saisie est au courant qu'il y a traitement et du coup il n'essai plus de gérer manuellement. Rien d'une procédure obligée à cet endroit, tu fais comme tu le sens...
Sinon l'ensemble est plus que correct, il y a bien quelques procédures a optimiser, mais ce ne serait peut-être même pas percu par l'utilisateur final, l'application se suffit donc à elle même, digne d'une appli commerciale, chapeau bas...

Commentaire de jacques-antoine le 09/08/2012 15:18:19

Ouch, l'optimisation est trop chiante à faire, tout comme l'utilisation du lostfocus, pour un bénéfice discutable... Il y a sûrement des choses à faire pour ça aille plus vite et mieux, mais on va gagner des clopinettes pour des heures de boulot.

En ce qui concerne le modem, ça y est, j'ai intégré le test et modifié quelque peu l'allure de la fenêtre. Je n'ai plus qu'à répercuter tout ça dans l'aide : je mettrai le tout en ligne dès que ces modifs seront faites.

Merci pour le chapeau, mais attention à la poussière...

Commentaire de laslawzibeu le 15/09/2012 17:05:12

l'homme n'est pas fait pour penser mais plutôt à réfléchir. "Laslaw Zibeu NDIAYE"

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales