Repertoire telephonique avec fichier

Soyez le premier à donner votre avis sur cette source.

Vue 19 671 fois - Téléchargée 2 761 fois

Description

Ce programme gere votre repertoire telephonique. Avec le Prenom, le Nom et le Numero de téléphone de vos contacts. On peut ajouter, modifier, supprimer, parcourir et actualiser le fichier.
Pour votre information, je suis entrain actuellement de développez une logiciel complet de gestion de l'agenda telephonique du personnel d'une societe sous python. Incha'Allah, si je termine ce logiciel, je le mettrais en ligne. Si vous avez des propositions ou des remarque à me faire nhésitez pas à m'envoyer un message à cette adresse: msdieme@yahoo.fr.

Conclusion :


Ce script est libre vous pouver l'utiliser et le modifier à votre guise. Le code est un peu commenter sinon, je vous laisse à votre intuition pour comprendre le code.
La version base de données de ce logiciel sera bientot disponible. Pour aiguiser votre appetit, la base de données sera sous SQLServer 2000 et l'application sera toujours développé sous python.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
samedi 5 mai 2007
Statut
Membre
Dernière intervention
7 mai 2007

Merci LEPECHEUR.
Je reviens sur la question des caractères accentués. Sur la console, j'ai des problèmes. J'ai écrit un script; le libellé contient par exemple print"l'âge est: %s",%(age). La lettre 'â' de 'âge' est sortie bizarre sur la console à l'exécution du script. Alors explique-moi bien ton affaire de fichiers à déposer dans le répertoire de python pour éviter les problèmes d'accents. Pas à pas, S.v.p ! Je profite pour te demander pourquoi, à l'exécution d'un script, la console ne couvre pas tout le bureau, mais s'étend seulement sur la moitié et comment on fait pour effacer cette console comme on le faisait dans le vieux basic avec la commande CLS.

MERCI !
Messages postés
35
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Pour Glaza:
Je n'ai pas de problème avec l'ordre des informations. Chez moi, après les modifications qu'il faut apporter et qu'on verra après, tout est normal à ce niveau là. Peut-être s'agit il d'une erreur au moment de l'ajout des infos, ou un oubli de d'abord "actualiser".

Il y a par contre un affichage des caractères de fin de ligne qu'on évite comme celà:

dans affiche, ajouter [:-1] ==>

varP.set(liste[i][:-1])
varN.set(liste[i+1][:-1])
varT.set(liste[i+2][:-1])

Ainsi on n'affiche que jusqu'à l'avant dernier caractère.
Ex: si animal = "chat", animal[:-1]= "cha"

Pour le problème d'accents, il s'agit de problèmes d'encodages de chaînes et de fichiers. Pour le régler, il faut ajouter une ligne dans ce code, avant tout le reste:

# -*- coding:latin-1 -*-
(ceci s'occupe du programme qui tourne)
et créer un fichier sitecustomize.py à placer dans ...\Python2X\Lib\site-packages contenant les lignes

import sys
sys.setdefaultencoding('latin-1')

qui s'occupe entre autres du fichier que l'on utilise.

Bon courage !
Messages postés
2
Date d'inscription
samedi 5 mai 2007
Statut
Membre
Dernière intervention
7 mai 2007

Salut !
La fonction sauve(fichier): pose problème comme LEPECHEUR l'a fait remarquer. suivant les conseils de ce dernier, j'ai carrément remplacé la variable fichier par un nom de fichier existant dans le repertoire. Regardez :

def sauve():
f = open('dina.txt','a')
prenom = entr1.get()
f.write(prenom + '\n')
nom = entr2.get()
f.write(nom + '\n')
telephone = entr3.get()
f.write(telephone + '\n')
f.close()
efface()
def transfert():
f = open('dina.txt','r')
j = 1
while j==1:
t = f.readline()
if t=='':
f.close()
j=0
else:
liste.append(t)
t = f.readline()
liste.append(t)
t = f.readline()
liste.append(t)

Je note un autre problème: lorsqu'on clique sur le bouton list, l'enregistrement qui s'affiche ne correspond pas aux libellés. Par exemple le champ: prénom prend le numéro de téléphone ! et on voit les marques de fin de ligne. Pourtant, ce code m'intéresse. Une autre remarque: les caractères accentués provoquent une erreur. J'ai essayé par exemple : Ouréga comme prénom. Si quelqu'un peut améliorer ce code... Je pense à LEPECHEUR. Moi, je suis encore novice en python. merci et salut !
Messages postés
1
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 septembre 2005

Salut je vous demande pardon à vous tous de ce long silence. En effet, j'ai changé de boite (societe de travail) depuis fin Janvier 2005. Comme je devais m'habituer avec ma nouvelle boite, j'ai du laisser le developpement avec python durant ces mois. Je vous demande pardon de n'avoir pas repondu à vos questions. Mais comme promis bientot, je mettrais en ligne un code source permettant de faire un repertoire telephonique avec une base de données MySQL ou SQlServer. Pour repondre à "quellol2002", je lui dirais que j'ai choisi SQLServer pour montrer qu'avec Python, on peut être sous linux et attaquer un base de données sous Windows. Pour satisfaire sa demande, je développerais l'application avec une base de données MySQL sous Linux et une base de données SQLServer.
Cordialement.
Messages postés
35
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
29 octobre 2007

pouloute, je peux déjà aider pour la recherche même si elle ne recherche que la première occurence d'une donnée:
il faut ajouter le bouton recherche :

Button(fen1, text=' Find ' , command=infos).grid(row=4,column=5)

puis les fonctions (avec base.txt la base de données):

def recherche(num=0, element='', suivant=0):

if num == 3:
placer()
return
f = open('Base.txt','r')
j=1
while j==1:
prenom = f.readline()[:-1]
nom = f.readline()[:-1]
numero = f.readline()[:-1]
liste=[prenom, nom, numero]
if liste[num]==element:
placer(liste)
f.close()
return
if prenom '' or nom '' or numero == '' : j=0
if j == 0: placer ()
f.close()

def placer(liste=['Non trouvé','Non trouvé','Non trouvé']):

varP.set(liste[0])
varN.set(liste[1])
varT.set(liste[2])

def infos():

prenom = entr1.get()
nom = entr2.get()
tele = entr3.get()
if prenom !='':
return recherche(0,prenom)
elif nom !='':
return recherche(1,nom)
elif tele !='':
return recherche(2,tele)
else: return recherche(3)
Afficher les 8 commentaires

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.