Assign permet d'affecter une variable dont on ne connaît pas le nom à l'avance.
Assign exp_nom With exp_valeur
Elément | Description | Restrictions |
exp_nom | Expression de type Char dont le résultat est le nom d'une variable | La variable doit exister. |
exp_valeur | Expression quelconque. | Son type doit être compatible avec celui de la variable. |
# Alimentation des champs REP1 et REP2 de la ligne courante du tableau du masque SDH1 par la valeur des champs REP(0) et REP(1) du masque SDH2.
For I=0 To 1
Assign ("[M:SDH1]REP"+num$(I+1)+"(nolign-1)")
With evalue("[M:SDH2]REP("+num$(I)+")")
Next# Programme affichant : I=3
Default Local
Char NOM(10) : Libelle I
[L]NOM = "[L]I"
Assign [L]NOM With 3
Infbox "I="-[L]I# on remplit 1000 enregistrements dans la table FICHIER
# avec des valeurs calculées au hasard
Local Char NOM_FIC(10)
[L]NOM_FIC = "FICHIER"
If filinfo(filpath("FIL",[L]NOM_FIC,"srf"),1) >= 0
Call FILL([L]NOM_FIC)
Endif
End
Subprog FILL(NOMFIC)
Value Char NOMFIC()
Local File =NOMFIC [XX]
Local Shortint TYP
## Boucle sur le nombre d'enregistrements à écrire
For I=0 To 999
## Boucle sur le nombre de zones du fichier
For J=0 To [G:XX]nbzon-1
## Boucle sur la dimension de chaque zone
For K=0 To evalue("dim([F:XX]"+[G:XX]adxfname(J)+")-1")
## Libelle(1) Shortint(2) Date(3) Integer(4)
#(suite de l'exemple précédent)
## Decimal(7,9) Char(>10)
[L]TYP = evalue("type([F:XX]"+[G:XX]adxfname(J)+")")
Case [L]TYP
When 1:Assign[G:XX]adxfname(J)+"(K)" With int(rnd(255))
When 2:Assign[G:XX]adxfname(J)+"(K)" With int(rnd(32768))
When 3:Assign[G:XX]adxfname(J)+"(K)" With date$+int(rnd(365))
When 4:Assign[G:XX]adxfname(J)+"(K)" With int(rnd(2^31-1))
When 7:Assign[G:XX]adxfname(J)+"(K)" With rnd(10^79)
When Default
Assign [G:XX]adxfname(J)+"(K)" With
& sigma(L=0, [L]TYP-10-1, chr$(int(rnd(25)+ascii('A'))))
Endcase
Next K
Next J
Write [XX]
Next I
End
"assign" permet d'affecter une variable (déclarée au préalable) dont o ne connaît pas le nom au moment de l'affectation. Pour cela, on doit disposer d'une variable alphanumérique ayant pour valeur le nom de la variable à affecter.
Le nom de la variable "connue" est à donner en premier argument de l'instruction "assign".
Le type de la valeur d'affectation doit être cohérent avec celui de la variable à affecter.
Notons que l'instruction "assign" ne permet pas d'affecter un ensemble de variables (de type affectation de classe à classe par exemple).