remplir une structure depuis une procedure

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

remplir une structure depuis une procedure

Message par case »

j'ai posté ceci dans le forum anglais car je pense qu'il s'agit d'un bug
vous en pensez quoi ?

en gros si on cree une variable contenant une structure et qu'on veux copier une autre variable dedans a partir d'une procédure on dois obligatoirement y mettre quelque chose dedans avant

cela ne se produit pas si les deux structures sont dans le programme principal

Code : Tout sélectionner

Structure blah
  a.i
  b.i
EndStructure

Procedure fillvar(*adress)
 
my_var2.blah ; temp variable

my_var2\a=10
my_var2\b=20
 
CopyStructure(@my_var2,*adress,blah)

EndProcedure


my_var.blah ; create a new structured variable

fillvar(@my_var) ; fill it with value from a procedure

Debug my_var\a ; should be 10
Debug my_var\b ; should be 20

;----------------------------------

my_var\a=0 ; put a void value in the structure

fillvar(@my_var)


Debug my_var\a ; OK
Debug my_var\b ; OK
ImageImage
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: remplir une structure depuis une procedure

Message par PAPIPP »

Bonjour Case
chez moi tout est OK
j'ai utilisé une procédure un peu plus simple
mais peut-être que cela n'est pas ce que tu cherches
Structure blah
a.i
b.i
EndStructure
Procedure fillvarn(*ad.blah)
*ad\a=10
*ad\b=20
EndProcedure

Procedure fillvar(*adress)

my_var2.blah ; temp variable

my_var2\a=10
my_var2\b=20

CopyStructure(@my_var2,*adress,blah)

EndProcedure


my_var.blah ; create a new structured variable

fillvar(@my_var) ; fill it with value from a procedure
Debug "******* après appel fillvar *****"
Debug my_var\a ; should be 10
Debug my_var\b ; should be 20

;----------------------------------

my_var\a=0 ; put a void value in the structure
Debug "******* après my_var\a=0 *****"
Gosub deb_str
fillvar(@my_var)
Debug "******* après nouvel appel fillvar *****"
Gosub deb_str
ClearStructure(@my_var,blah)
Debug "******* après clearstructue *****"
Gosub deb_str
Debug "******* après appel nouveau fillvarn *****"
fillvarn(@my_var)
Gosub deb_str
End
deb_str:
Debug my_var\a ; OK
Debug my_var\b ; OK
Return
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: remplir une structure depuis une procedure

Message par case »

:oops: j'avais pas mis la 4.51, j'etais en 4.50 ...
la ca fonctionne...
comme quoi...
ImageImage
Répondre