Vous êtes sur la page 1sur 8

Chapitre 2 : Les Base du Wlangage

I) Présentation

Le W-Langage est un langage de 5ème génération créé par PCSOFT. C'est un langage très facile
puisque les instructions sont écrites en Français et près du langage naturel.

Trilingue, le WLangage permet de programmer en français, en anglais et en chinois,

exemples :

- en français :

sChaine est une chaîne


sChaine = DateVersChaine(DateDuJour())

Info("Nous sommes le " + sChaine)

- ou en anglais :

sChaine is string
sChaine = DateToString(Today())

Info("Nous sommes le " + sChaine)

- ou en chinois (dans la version chinoise de WinDev uniquement) :

定义sChaine为字符串型变量
sChaine=日期转换为字符串(今天())
信息("今天是 :"+sChaine)

- voire en mélangeant les langues :

sChaine is string
sChaine = DateVersChaine(DateDuJour())
Info("Nous sommes le " + sChaine)

Exemple.

Info("Bonjour le monde !")

II) Les variables

WinDev propose une grande variété de types de variables :

Booléen : type conseillé pour toutes les opérations logiques où seules deux alternatives sont
possibles :
-Vrai (valeur différente de 0)
- Faux (valeur égale à 0)
Exemple : X est un booléen

Entier : type conseillé pour des calculs réalisés sur des valeurs entières.

Monétaire : type conseillé pour des calculs réalisés sur des valeurs réelles nécessitant une
précision garantie des décimales, comme par exemple des valeurs monétaires. Un monétaire
gère 24 chiffres significatifs (17 maximum pour la partie entière, 6 maximum pour la partie
décimale). La précision est assurée sur 6 décimales.

Numérique: type conseillé pour des calculs réalisés sur des valeurs réelles nécessitant une
précision garantie des décimales. Un numérique gère 38 chiffres significatifs (32 maximum
pour la partie entière, 6 maximum pour la partie décimale). La précision est assurée sur 6
décimales.

Réel : type conseillé pour des calculs simples réalisés sur des valeurs réelles. Un réel gère 15
chiffres significatifs, par contre la précision des décimales n'est pas garantie. La précision des
décimales n'est pas assurée. Pour effectuer des calculs précis, utilisez le type "Monétaire".

Chaîne : type conseillé pour la gestion des caractères et des chaînes de caractères. Avec ce
type, il n'est pas nécessaire de déclarer la longueur de la chaîne. Celle-ci peut varier de façon
libre lors de l'utilisation de la variable. Pour une gestion avancée des chaînes de caractères
(essentiellement pour les API Windows).

Buffer : type conseillé pour écrire un code portable entre WinDev et WinDev Mobile.

Date, Heure, DateHeure, Durée : types conseillés pour la gestion des dates et des heures. Le
type "Date" et le type "Heure" permet de manipuler simplement les dates et les heures, et
de gérer de manière quasi automatique toutes les conversions.

Le type "DateHeure" permet de gérer en une seule fois une date et une heure. Le type
"Durée" permet de gérer simplement les différences d'heures ou de dates.
Variant: type conseillé pour stocker n'importe quel autre type simple du W-Langage. Le type
Variant est un type permettant de manipuler les ActiveX ou pour gérer la valeur NULL.

La syntaxe à utiliser pour déclarer une variable est la suivante :

NomVariable EST UN(e) TypeVariable

III) La déclaration des variables :

En WLanagage, il existe deux types de déclarations : Globale et Locale.

1- Les variables Locales:

Une "variable locale" ne peut être utilisée que dans le traitement dans lequel elle a été
déclarée. Elle est "locale" au traitement.

LOCAL

MaVariableLocale est une chaîne

2- Les variables globales:

Une "variable globale" peut être utilisée dans tous les traitements appelés par le traitement
dans lequel la variable est déclarée.

GLOBAL

MaVariableGlobale est une chaîne

IV) Les operateurs

 Opérateurs arithmétiques

Les opérateurs arithmétiques sont :

 "+" : Addition (valeur numérique ou chaîne)


 "-" : Soustraction (valeur numérique)
 "*" : Multiplication
 "/" : Division
 "++" : Incrémentation (valeur numérique)
 "--" : Décrémentation (valeur numérique)
 "+=" : Addition d'une valeur à la variable ou au champ (numérique ou texte)
 "-=" : Soustraction d'une valeur à la variable ou au champ (numérique)
 Modulo : Retourne le reste d'une division entière
 "^" : Puissance (équivalent à la fonction Puissance)
 "++" : Incrémentation
 "--" : Décrémentation
 "+=" : Ajout d'une valeur à la variable ou au champ (numérique ou texte)
 "-=" : Soustraction d'une valeur à la variable ou au champ (numérique)
Exemple

 j ++ est équivalent à j = j + 1
 j -- est équivalent à j = j - 1
 j += 3 est équivalent à j = j + 3

 j -= 3 est équivalent à j = j – 3
 Les opérateurs logiques:

Les opérateurs logiques permettent d'effectuer des opérations logiques et de construire des conditions.

 ET Multiplication logique. Les conditions composées de ET sont toujours


évaluées dans leur totalité (même si la première condition est fausse).
Multiplication logique. Les conditions composées de _ET_ sont évaluées
 _ET_
de manière optimisée. Si la première partie de l'expression est fausse, la
suite de l'expression n'est pas évaluée.
 OU Addition logique. Les conditions composées de OU sont toujours
évaluées dans leur totalité (même si la première condition est vraie).
Addition logique. Les conditions composées de _OU_ sont évaluées de
 _OU_
manière optimisée. Si la première partie de l'expression est vraie, la suite
de l'expression n'est pas évaluée.
 PAS
Négation logique.

Règles
Vrai ET Vrai : retourne Vrai
Vrai ET Faux : retourne Faux
Vrai OU Vrai : retourne Vrai
Vrai OU Faux : retourne Vrai
PAS Vrai : retourne Faux

 Opérateurs binaires
ET, OU et OU exclusif binaires

Les syntaxes suivantes peuvent être utilisée :

 ET binaire : <Valeur 1> & <Valeur 2>


 OU binaire : <Valeur 1> | <Valeur 2>
 OU exclusif binaire : <Valeur 1> || <Valeur 2>

 Opérateurs de comparaison

Les opérateurs de comparaison peuvent être divisés en plusieurs catégories :


 Egalité stricte : =
 Egalité souple : ~=
Egalité  Egalité très souple : ~~
 Commence par : [=

 Différent : <>
 Inférieur ou égal : <=
 Supérieur ou égal : >=
Comparaison  Strictement inférieur : <
 Strictement supérieur : >
 Commence par : [=

Exemple

"Dupond" = "DUPOND" // Retourne Faux


"Dupond" ~= "DUPOND" // Retourne Vrai
" Dupond" ~= "DUPOND" // Retourne Vrai
" Dupond" ~= "Dupond" // Retourne Vrai
"C'est l'été" ~= "C'est l'ete" // Retourne Vrai
"Ent. S.A.R.L" ~~ "Ent SARL" // Retourne Vrai

 Opérateurs sur chaînes de caractères


Les chaînes de caractères peuvent être manipulées par des fonctions spécifiques du WLangage ou
par les opérateurs +, [[ et ]].
Les opérateurs sur des chaînes de caractères sont :

 " + " : Pour concaténer des chaînes


 " [ " et " ] " : Pour concaténer optionnellement des chaînes
 " [[ " et "]]" (double crochets ouvrants et double crochets fermants) : Opérateur
d'extraction d'une sous-chaîne
 " = " : Égalité stricte
 " ~= " : Égalité souple
 " ~~ " : Égalité très souple
 " [= " : Commence par

Exemple

Texte est une chaîne = "San Francisco"


Texte[[5]] // Retourne "F"
Texte[[5 A 10]] // Retourne "Franci"
Texte[[5 A]] // Retourne "Francisco"
Texte[[A 10]] // Retourne "San Franci"
Texte[[10 sur 4]] // Retourne "isco"
Texte + " et New York" // Retourne "San Francisco et New York"
SI Texte [= "San" ALORS Trace(Texte)

 Opérateurs d'affectation
Il existe plusieurs opérateurs d'affectations :

 l'affectation simple : =
 l'affectation par copie : <=
 l'affectation par référence : <-

Exemple
( <Variable 1>, <Variable 2>, ... <Variable N> ) = <Valeur>

(x,y,z) = 0

(x, y, z) = (5, 8, 12)


// x vaut 5, y vaut 8, z vaut 12

(x, y, z) = (25, 38)


// x vaut 25, y vaut 38, z n'est pas affecté

(x, , z) = (14, 87)


// x vaut 14, y n'est pas affecté, z vaut 87

 Opérateur d'échange (<=>)


L'opérateur <=> permet d'échanger les contenus de deux éléments. Si nécessaire, les conversions de type
sont effectuées. Retourne l'adresse d'une variable sous la forme d'un entier.

Exemple
I est un entier = 5
J est un entier = 6
I <=> J

V) Quelques Structures de contrôles

 Instruction SI

L'instruction conditionnelle SI permet de choisir d'exécuter une action en fonction d'une condition.
Syntaxe 1

SI <Condition> ALORS
<Action si condition vraie>
[SINON
<Action si condition fausse>]
FIN

 Instruction SELON
L'instruction conditionnelle SELON permet de choisir d'exécuter une action en fonction de la
valeur d'une expression.
Deux syntaxes sont disponibles pour cette instruction :

 Syntaxe complète.
 Syntaxe simplifiée pour une valeur entière de valeurs consécutives.

Exemple

SELON Quantité
CAS 1 : Comment = "Profitez des promotions : 2 produits pour le prix d'un"
CAS 2 : Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"
AUTRE CAS : Comment = ""
FIN

 Instruction BOUCLE
Le bloc d'instructions est répété à l'infini. Le nombre d'itérations du bloc d'instructions n'est pas
contrôlé, il n'y a pas d'expression à évaluer.

Syntaxe 1

Boucle avec sortie selon une condition "SI"

BOUCLE
...
SI <Condition> ALORS SORTIR
...
FIN

Syntaxe 2
BOUCLE
...
A FAIRE TANTQUE <Condition>

Syntaxe 3
BOUCLE (<Nombre d'itérations>)
...
FIN

Exemple

// Sortie selon une condition SI


BOUCLE
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne(NumFic)
SI UneLigne = EOT ALORS SORTIR
TraiteLigne(UneLigne)
FIN

Syntaxe

Instruction TANTQUE

TANTQUE <Condition>
<Action si condition vraie>
FIN

Exemple

TANTQUE Prix < 100 ET TypeProduit = "AA"


NbreProduit ++ // Nombre de produits dont le prix est inférieur
// à 100 € et dont le type est "AA"
FIN

TANTQUE Prix > 100 OU Prix < 500


NbreProduit ++ // Nombre de produits dont le prix est compris entre 100 et 500 €
FIN