# Call

L'instruction de contrôle call appelle une sous-routine qui doit être définie par une instruction sub précédente.

Call name ( [ paramlist ])

Arguments Call

| Argument | Description |
| --- | --- |
| name | Nom de la sous-routine. |
| paramlist | Liste des paramètres à envoyer à la sous-routine, séparés par des virgules. Chaque élément de la liste peut correspondre à un nom de champ, une variable ou une expression arbitraire. |

La sous-routine appelée par une instruction call doit être définie auparavant dans l'exécution du script par une instruction sub.

Les paramètres sont copiés dans la sous-routine et, si le paramètre de l'instruction call désigne une variable au lieu d'une expression, il est recopié et supprimé à la fermeture de la sous-routine.

Comme l'instruction call est une instruction de contrôle et qu'elle se termine donc soit par un point-virgule, soit par un caractère de fin de ligne, elle ne doit pas s'étendre sur plusieurs lignes.

`// Example 
 1` `Sub INCR 
 (I,J)`

> `I = I + 
>  1` `Exit Sub 
>  when I < 10` `J = J + 
>  1`

`End Sub` `Call INCR 
 (X,Y)`

`// Example 
 2 - List all QV related files on disk` `sub DoDir 
 (Root)`

> `For Each Ext in 'qvw', 
>  'qvo', 'qvs', 'qvt', 'qvd', 'qvc'`
>
> > `For Each File in filelist 
> >  (Root&'\*.' &Ext)`
> >
> > > ` LOAD   `
> > >
> > > > `'$(File)' as Name, 
> > > >  FileSize( '$(File)' ) as` `Size, FileTime( '$(File)' 
> > > >  ) as FileTime` `autogenerate 1;`
> >
> > `Next File`
>
> `Next Ext` `For Each Dir in dirlist 
>  (Root&'\*' )`
>
> > `Call DoDir (Dir)`
>
> `Next Dir`

`End Sub` `Call 
 DoDir ('C:')`