Pages

Affichage des articles dont le libellé est dynamiquement. Afficher tous les articles
Affichage des articles dont le libellé est dynamiquement. Afficher tous les articles

assigner dynamiquement les valeurs aux attributs d'un objet sujet

samedi 29 mars 2014




Bonjour , j'essaye de créer un "petit logiciel" pour répertorier des animaux. Il existe une classe Animal, qui me pond des objets correspondants aux animaux qui atterrissent à la SPA.Il s'agit d'un exercice pratique et utile.

Je ne connais donc pas à l'avance l’espèce,ni la race,ni le sexe,ni le poids etc.Mais qu'il s'agisse d'un chat de 2k ou d'un berger allemand de 15 kg , ils appartiennent tous deux à la classe Animal , pour ne pas compliquer les choses.

Il y aura également une classe Hebergeur, pour ceux qui viendront adopter , donc comme attribut ici:nom,adresse,n° tel,email etc. qu'il faudra saisir. Grace à un menu , on choisit de créer un objet animal ou un objet hebergeur , ou seulement de consulter ou éditer partiellement.

J'ai prévu de saisir les bonnes valeurs grâce à des inputs qui stockent temporairement l'info dans une liste , qui elle meme devrait se redeverser dans un objet afin de le stocker dans un fichier "data". Mais évidement j'ai rencontré des problèmes...Voici donc le code :


Code:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220

# -*- coding: cp1252 -*-
from os import system
import pickle
import os
import pickle
import copy
liste_desc_animal = []
dico_desc_animal = {}

#----------------------------------- Classe Animal definition ---------------------
class Animal:
def __init__(self, id_animal,espece,race,prenom_animal,date_naiss_animal,date_acc_spa,sexe,sterilise_statut,robe,poil,pesee_acc,rdv_veto,caractere,commentaire):

self.__id_animal = id_animal # int
self.__espece = espece # int

self.__race = race # liste
self.__prenom_animal = prenom_animal # string

self.__date_naiss_animal = date_naiss_animal # dates
self.__date_acc_spa = date_acc_spa # dates

self.__sexe = sexe # boleen
self.__sterilise_statut = sterilise_statut # boleen

self.__robe = robe # liste
self.__poil = poil # liste

self.__pesee_acc = pesee_acc # float

self.__rdv_veto = rdv_veto # dates


self.__caractere = caractere # liste
self.__commentaire = commentaire # string

#-----------------------------------SET---------------------
def setId_animal(self, id_animal):
self.__id_animal = id_animal

def setEspece(self, espece):
self.__espece = espece

def setRace(self, race):
self.__espece = espece

def setPrenom_animal(self, prenom_animal):
self.__prenom_animal = prenom_animal

def setDate_naiss_animal(self, date_naiss_animal):
self.__date_naiss_animal = date_naiss_animal

def setDate_acc_spa(self, date_acc_spa):
self.__date_acc_spa = date_acc_spa

def setSexe(self, sexe):
self.__sexe = sexe

def setSterilise_statut(self, sterilise_statut):
self.__sterilise_statut = sterilise_statut

def setRobe(self, robe):
self.__robe = robe

def setPoil(self, poil):
self.__poil = poil

def setPesee(self, pesee_acc):
self.__pesee_acc = pesee_acc

def setRdv_veto(self, rdv_veto):
self.__rdv_veto = rdv_veto

def setCaractere(self, caractere):
self.__caractere = caractere

def setCommentaire(self, commentaire):
self.__commentaire = commentaire
#-----------------------------------GET---------------------
def getEspece(self):
return self.__espece

def getRace(self):
return self.__race

def getPrenom_animal(self):
return self.__prenom_animal

def getDate_naiss_animal(self):
return self.__date_naiss_animal

def getDate_acc_spa(self):
return self.__date_acc_spa

def getSexe(self):
return self.__sexe

def getSterilise_statut(self):
return self.__sterilise_statut

def getRobe(self):
return self.__robe

def getPoil(self):
return self.__poil

def getPesee(self):
return self.__pesee_acc

def getRdv_veto(self):
return self.__rdv_veto

def getCaractere(self):
return self.__caractere

def getCommentaire(self):
return self.__commentaire
#--------------------------------------------- Remplissage liste descriptive du nouvel animal arrivant a la SPA ------
def remplir_liste_desc_animal():

entree_id = input("quel est l' id ? ==> ")
entree_espece = input("quel est l' espece ? ==> ")
entree_race = input("quel est la race ? ==> ")
entree_prenom = input("quel est le prenom de l animal ? ==> ")
entree_ddn = input("quelle est sa date de naissance ? ==> ")
entree_dac = input("quelle est la date d accueuil a la SPA ? ==> ")
entree_sex = input("quel est le sexe ? ==> ")
entree_ster = input("Est il sterilise ? ==> ")
entree_robe = input("quelle est sa robe ? ==> ")
entree_poil = input("quel est son poil ? ==> ")
entree_poids = input("quel est son poids d entree ? ==> ")
entree_rdv = input("quel est son prochain rdv ? ==> ")
entree_carac = input("quel est son caractere (calin-dangereux-solitaire-joueur-lunatique...? ==> ")
entree_com = input("commentaire ? ==> ")
print("\n\n")
print(entree_id )

liste_desc_animal.append(entree_id)
liste_desc_animal.append(entree_espece)
liste_desc_animal.append(entree_race)
liste_desc_animal.append(entree_prenom)
liste_desc_animal.append(entree_ddn)
liste_desc_animal.append(entree_dac)
liste_desc_animal.append(entree_sex)
liste_desc_animal.append(entree_ster)
liste_desc_animal.append(entree_robe)
liste_desc_animal.append(entree_poil)
liste_desc_animal.append(entree_poids)
liste_desc_animal.append(entree_rdv)
liste_desc_animal.append(entree_carac)
liste_desc_animal.append(entree_com)

print(" Recapitulatif: \n ",liste_desc_animal)

#dico_desc_animal = {[id_animal] = [entree_id] }


with open('liste_animaux.txt', 'wb') as fichier:
mon_pickler = pickle.Pickler(fichier)
mon_pickler.dump(liste_desc_animal)
print("ceci a ete ajoute dans le fichier liste_animaux.txt ")
#------------------------------------------- Creer un objet a partir d une liste --------
def animalCreator(liste_desc_animal):
#liste_desc_animal[2] = Animal(liste_desc_animal[0],liste_desc_animal[1],liste_desc_animal[2],liste_desc_animal[3],liste_desc_animal[4],liste_desc_animal[5],liste_desc_animal[6],liste_desc_animal[7],liste_desc_animal[8],liste_desc_animal[9],liste_desc_animal[10],liste_desc_animal[11],liste_desc_animal[12],liste_desc_animal[13])
#entree_prenom =
print("voici liste_desc_animal connu dans la fonction animalCreator : ",liste_desc_animal)
#------------------------------------------- affichage du menu -----------------------
class Menu:

def __init__(self):
self.choix_menu = 'choix_menu'


#self.__afficher_menu = afficher_menu
def afficher_menu(self):

print(" 1. Creation de fiche pour un nouveau pensionnaire \n")

print(" 2. Modifier une fiche pour un animal deja connu de la SPA \n")

print(" 3. Affichage simple de la fiche pour un animal connu dans la base de donnees \n")
print(" 4. Affichage ameliore des pensionnaires avec tri en fonction de vos besoins precis \n")

print(" 5 Affichage du dernier pensionnaire enregistre dans la base de donnees \n")

print(" 6. Creation de fiche pour un nouveau hebergeur \n")

print(" 7. Modifier une fiche pour un hebergeur connu \n")

print(" 8. Affichage simple de la fiche pour un hebergeur connu dans la base de donnees \n")

print(" 9. Affichage ameliore des hebergeurs avec tri en fonction de vos besoins precis \n")

print(" 10. Admin : maintenance de la base de donnees \n")
print(" 11. contacts veterinaires \n")
print(" 12. contacts fournisseurs \n")
print(" 13. contacts mairie \n")
#------------------------------------------- entree clavier choix du menu -----------------------

def choisir_menu(self):
choix_menu = input(" Choisissez une action : --> ")
print(" vous avez choisi : ",choix_menu)
choix_menu = int(choix_menu)
if choix_menu == 1:
os.system('cls')
remplir_liste_desc_animal()
for desc in liste_desc_animal:
nouvelanimal = Animal(desc)

#--------------------------------------------- BOUCLE pour MENU_ACCUEUIL -------------
a = True
while a:
#os.system('cls')
print("\n\n\n")
supermenu = Menu()
supermenu.afficher_menu()
supermenu.choisir_menu()
animalCreator(liste_desc_animal)
ferme = input("appuie pour fermer")


==> J'obtiens TypeError __init__() missing 13 required positional arguments 'espece','race',etc.
Que feriez vous à ma place ? Existe t il d'autre façon plus simple de mener à bien ce type de programme ?
Vous arrive t il d'assigner vos attributs d'objets en cours d'execution du programme ?




SQL MS 2005 probleme attach dynamiquement sur Windows 7 sujet

vendredi 28 mars 2014




Salut à tous,

Je rencontre un petit probleme de droit pour attacher dynamiquement ma BD:
le soucie est que je fournit à l'exploitant un .exe et une base de donnée, l'exe est appellé par un bouton de WINCC (un genre de shellexecute) qui ouvre l'application qui permet de charger via ADO les recettes du pc à l'aide du client OPC vers le server WINCC donc en cas de changement de PC il faut attacher la BD dynamiquement;

le probleme constaté: si je clique droit sur l'exe et executer en tant qu'admin ça marche sinon marche pas
meme depuis SQL manager je suis obliger de cliquer droit en tant qu'admin pour attach


Si je fais clic droit sur le .mdf et log.ldf propriété->securité->modifier et j'ajoute "tous le monde" ça marche mais si je detach la base je coupe les fichier .mdf et .ldf sur une clé usb je la sort et je la remet et je remet au meme endroit les droit on changé et donc il faut de nouveau le refaire.

Si quelqu'un à dejà eu le soucis où qui à la solution je l'en remercie d'avance!
bonne journée
@+ nicolas




[Débutant] Assigner le travail d'un BackgroundWorker dynamiquement dans une classe. sujet

samedi 1 février 2014




Bonjour a tous,
Dans mon précédent Post je souhaitais réaliser une classe de TraitementVideo, je me rends compte que la gestion des objets Process ne suffit pas, je dois étendre les possibilités pour pouvoir exécuter du code a l'aide de BackGroundWorker(s).
Ma classe va donc devenir un véritable gestionnaire de taches qui va devoir mêler l’exécution des Objets Process et des BackGroundWorkers.
Bien que celle-ci fonctionnera principalement de façon synchrone (exécution des taches les unes a la suite des autres) je me donne la possibilité de pouvoir aussi les exécuter de façon asynchrone a l'aide d'une variable boolean "SyncMode" qui définira le mode d’exécution de chaque tache.
Pour le cas qui m'interesse ici (les BackGroundWorker) je ne sais pas trop comment associer ce (ou ces) BackGroundWorker aux procédures SubTraitement1 ,2 ou 3 sans entraîner un forte dépendance (en faisant référence aux procédures) entre mon code principale et ma classe :

Pour informations je pense que je vais instancier un ou plusieurs BackgroundWorker en fonction des taches a exécuter et qui se partagent la même procédure DoWork comme dans l'exemple suivant (Je ne vois pas comment c'est possible autrement). Ceux-ci se trouvant dans ma classe et les procédures Traitement1, 2 et 3 se trouvant dans mon code principale.


Code:


Dim Task as string = "Traitement1"
Private Sub Bgw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs)
If Task = "Traitement1" then
Call SubTraitement1
ElseIf Task = "Traitement2" then
Call SubTraitement2
....
End If
End Sub



Cela n'a peut-être rien avoir mais j'ai pensé aux délégués (que je n'ai encore jamais utilisés), pensez vous que cela peut être une solution a mon problème et comment cela s’implémente ?

Merci beaucoup pour votre aide.