L4G >  Assign  

Afficher tout Masquer tout

Assign permet d'affecter une variable dont on ne connaît pas le nom à l'avance.

 

Syntaxe

Assign exp_nom With exp_valeur

 

Paramètres

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.

 

Exemples

# 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

 

Description

"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).

 

Erreurs associées

Erreur

Description

ERMODE (10)

Incompatibilité type alpha/numérique.

ERVARI ( 6)

Variable inexistante.

ERCLAS ( 7)

Classe inexistante.

ERINDI ( 8)

Indice incorrect.

ERHUGE (13)

Dépassement de capacité numérique.

 

Mots-clés associés

CHAR - SHORTINT - INTEGER - DATE - LIBELLE - DECIMAL - TYPE - DIM