OVH Cloud OVH Cloud

C'est vendredi, fô troller un peu

7 réponses
Avatar
Do Re Mi chel La Si Do
Vite (mal ?) fait :



# -*- coding: utf-8 -*-

import time

class poelle(object):
def __init__(self, *arg):
self.contenu=[]
print"Soit une poëlle"

def ajoutcontenu(self,obj):
self.contenu.append(obj)
print "Cette poëlle contient",len(self.contenu),"oeuf(s)"

def propagationparole(self,parleur):
time.sleep(1)
for item in self.contenu:
if item==parleur:
pass
else:
item.parle("Raaaahhh ! Un oeuf qui parle !")

class oeuf(object):
def __init__(self,numero,objpoelle):
self.numero=numero
self.poelle=objpoelle
self.poelle.ajoutcontenu(self)

def parle(self, texte):
print "L'oeuf",self.numero,"parle, et dit :",texte
self.poelle.propagationparole(self)




poelle1=poelle()
oeuf1=oeuf(1,poelle1)
oeuf2=oeuf(2,poelle1)
oeuf1.parle("Pfffouit ! Il commence à faire chaud, ici")

7 réponses

Avatar
Bernard Adrian

Vite (mal ?) fait :


Je verrais bien "une poule" à la place de "une poelle". Je démarre un
fork ...
--
Bernard Adrian http://bernadrian.free.fr/wordpress

Avatar
Do Re Mi chel La Si Do
Il est reposant ce newsgroup.
Pas beaucoup de trafic, ces temps-ci.
Peut-être est-ce à cause des grèves en cours à la SNCF ?
Peut-être mon message a-t'il créé un vide (dans les esprits) ?
En tout cas, c'est calme.
Avatar
tiissa
C'est simplement un newsgroup de blondes (quand on dit que python c'est
simple...) et on est tous en train d'attendre la fin du programme*. ;)


* j'ai eu la flemme de faire un copier/coller mais il me semble que les
oeufs se repondent en boucle infinie (d'ou le sleep, je suppose).
On doit pouvoir ajouter le jaune dans un oeuf qui, comme chacun sait,
est l'organe de la memoire chez ceux-ci. Ils pourraient alors se
souvenir qu'un oeuf parle a partir du moment ou ils l'ont fait
eux-meme. :)
Avatar
F. Petitjean
Vite (mal ?) fait :

class oeuf(object):

J'ai vu au marché, samedi dernier des oeufs de cane en vente (deux euros

l'uinité tout de même) et cela me fait penser à :

rit, cane ! et la cane a ri.

A part cela j'ai un problème avce les pires windowseries qui soient.
L'interface Win d'une suite de programmes DOS (écrits à partir de 1991)
a été développée avec Windev (une version 5), tout simplement parce
qu'on a de supers ingénieurs et docteurs, mais ces messieurs ne savent
programmer qu'en FORTRAN et ne veulent pas apprendre autre chose.

Windev est un environnement développé par PCSoft et propose entre autre
un W-Langage qui est en Français. Il y a par exemple une fonction
IAperçu pour "visualiser à l'écran le résultat de l'impression". Je ne
sais comment les (en)codinsg, codecs, code-pge sont déclarés (rien
trouvé dans l'index). On peut avoir des choses telles que
Rech = Complete(Nom,25)+Complete(Ville,25)
HLitRecherche("CLIENT", "CLECOMP", Rech)
Si pas H.Trouve alors
Info("Pas d'enregistrement pour cette valeur")
Fin

Bref c'est beau, pas vraiment "buzzword compliant" car pas dans la
langue que parlent les managers et autres décideurs pressés.

Pour une fois qu'on a un truc en Français qui ne tourne que sous
windows, je pense que notre ami Michel va pouvoir me dépanner. J'ai donc
tenter de comprendre les fichiers inclus depuis le FORTRAN pour
l'interface avec windev. Il y a simplement 15 variables pour passer les
informations :
integer*2 wdentier traduit en ctypes.c_short()
double precision wdreeld traduit en ctypes.c_double()
character*200 wdchaine traduit en ctypes.create_string_buffer(200)
etc...
_wdfor = ctypes.windll.Wd553fc # charge Wd553fc.DLL
init_fn = _wdfor.INITWINDEVFC # en majuscules ! c'est pour FORTRAN
init_fn = [ POINTER(ctypes.c_short), .... , POINTER(ctypes.c_char), .. ]
init_fn(byref(wdentier), ..., wdchaine, ... )
Ceci provoque une exception :
ValueError: Procedure probably called with too many arguments (60 bytes
in excess)
et de même pour une procédure appelwd, mais si je trappe ces exceptions
cela marche presque : j'arrive à faire afficher des fenêtres décrites
dans une bibliothèque par exemple et obtenir un code wdtouche
correspondant à l'interaction appelwd('Ecran,Saisie'). (la fenêtre peut
décider de ne pas se redessiner tant qu'on n'a pas lancé 'Ecran,Saisie',
cela marche au début c'est tout.

Executive summary :
en FORTRAN call APPELWD(LOC('Ecran,saisie'C))
en COBOL call "_APPELWD" using by reference "Ecran,saisie" & x"00"
Python + ctypes ValueError: ... (4 bytes in excess)

Quelqu'un a une idée ?
Merci d'avance.

Avatar
Do Re Mi chel La Si Do
Bonsoir !


il me semble que les oeufs se répondent en boucle infinie (d'ou le
sleep, je suppose).




Toutafé ! Les oeufs se répondent. C'est leur destin d'oeuf parlant, qui
sait qu'un oeuf ne doit pas parler.


Dans le même genre de problème, si l'on ajoute un troisième oeuf, il n'aura
pas l'occasion de s'exprimer, car les deux premiers vont lui couper la
parole, par leurs réponses immédiates.

Ou alors, il aurait fallu organiser différemment le programme, mais alors,
il aurait fallu gérer (entre autres) le pluriel ("Raaaahhh ! Des oeufs qui
parlent !"). De la même manière, j'ai exclu l'étonnement d'un oeuf,
réalisant, lui-même, qu'il parle. Or, rien, dans l'hypothèse, n'interdit
cela.



Pendant quelques instants, j'ai pensé traiter le problème par des threads.
Cela aurait certainement été plus approprié. Mais j'ai angoissé, à l'idée du
nombre de threads générés. Éventuellement, ce serait marrant d'écrire cela
en Erlang (ce langage supportant allègrement quelques centaines de milliers
de threads, sur une machine courante).




Mais, comme c'était vendredi, et que j'avais encore beaucoup de choses à
faire, c'est fait au plus facile...




@-salutations

Michel Claveau



Avatar
Do Re Mi chel La Si Do
Bonsoir !

Désolé, mais je n'ai pas de réponse.

Il est certainement préférable de ne pas dire ce que je pense de Windev
(techniquement) ; néanmoins, PC-Soft (l'éditeur) est une boîte utilisant un
marketing très agressif, et plutôt efficace.

Il me semble que, actuellement, ils doivent en être à la version 9 ou 10 ;
et j'ai ouïe dire que les versions précédentes avaient un nombre
incalculable de bugs (il reste de méchants doutes sur les versions
actuelles).

Ce qu'il te faudrait, c'est une véritable doc technique de windev. Mais je
ne suis pas sûr qu'elle existe. Toutefois, je connais quelqu'un qui utilise
ce logiciel. Je vais me renseigner. La réponse ne viendra que la semaine
prochaine.
Attention, je ne promet rien. Je vais juste demander si cette personne a
des docs, ou des idées. Il ne faut pas attendre de miracle...


Bonne nuit

Michel Claveau
Avatar
Thierry Boudet
On 2005-05-27, Do Re Mi chel La Si Do wrote:

Désolé, mais je n'ai pas de réponse.



fr.comp.developpement.agl.windev

--
_/°< coin