Le langage Visual Basic.Net

Programming, Variables, Data Types · course

Browse all programmation documents

Chapitre 2: Le langage Visual

Basic.Net

Les variables : généralités

• Identifiant de variables:

– Doit commencer par une lettre Caractères

autorisés: lettres minuscules, lettres majuscules,

chiffres et "_"

– Pas de distinction entre minuscules et majuscules

– Toute variable doit être déclarée.

• 2 familles de types de variables:

– Types primitifs

– Types références (les objets)

W.Ayadi, Cours EDBD, FSEGT

2

Les types primitifs

W.Ayadi, Cours EDBD, FSEGT

3

Les types références

• Type Object : type universel

• Type String : les chaines de caractères

• Type Nullable :

– Il arrive parfois que dans certaines circonstances une

variable n’a pas de valeur bien définie

– Cette méthode permet aux variables de types primitifs

de ne contenir aucune information.

– Cela a de l'intérêt quand on travaille avec les bases de

données qui ont des champs qui contiennent un Null

– Utiliser '?' dans la déclaration.

W.Ayadi, Cours EDBD, FSEGT

4

Déclaration de variables

• Syntaxe:

Dim NomVariable1 [,NomVariable2, NomVariableN] [As

Type] [= Valeur initiale]

• L'instruction Dim crée la variable et lui alloue un espace

de stockage.

Exp:

  • Dim i As Integer

i=4

  • Dim i As Integer i=10000000000

'valeur non ‘accepté car trop grande pour un integer

Dim j As Long j=10000000000

'accepté car j est un Long

W.Ayadi, Cours EDBD, FSEGT

5

Déclaration de variables

• Si le type est omis  type par défaut Object

• Toute variable est initialisée par une valeur par défaut:

– Types numériques : 0

– Chaine de caractères : "" chaine vide

– Boolean : false

– Object : nothing

• Inférence de type : type déterminé à partir de la valeur

initialisant la variable

(Dim ch="Bonjour")  ch : String

– L‘inférence ne fonctionne qu‘avec les variables locales à une

fonction ou procédure.

– Initialisation sur la même ligne que la déclaration, sinon type :

Object.

W.Ayadi, Cours EDBD, FSEGT

6

Déclaration de variables

• Dim i As Integer

i=1.4  i=1 (conversion)

• On peut forcer le type d'un littéral en ajoutant une lettre:

– x= 42L  'le 'L' indique que 42 est un Long

– x= 42I  'le 'I' indique que 42 est un Integer

– x= 42D 'le 'D' indique que 42 est un Decimal

• Type Nullable :

Dim X? As Integer

Dim X As Integer?

– X n'a initialement aucune valeur définie, même si la valeur par

défaut du type Integer est 0.

W.Ayadi, Cours EDBD, FSEGT

7

Constantes

• Const nomVariable=valeur

• Exp:

Const NOMDUPROGRAMME= "LDF"

'constante chaîne de caractères.

Const NOMBREDECASE As Integer = 12

'constante Integer

Advertisement

W.Ayadi, Cours EDBD, FSEGT

8

Constantes

• Constantes vb prédéfinies les plus utilisées:

– vbLf: Saut de ligne (Unicode :13)

– vbNullChar: caractère null (Unicode: 0)

– vbTab: Tabulation (Unicode: 9)

– vbBack: Retour arrière (Unicode : 8)

W.Ayadi, Cours EDBD, FSEGT

9

Les tableaux

• Tableau à une seule dimension :

Dim nom_tab(const_int) as type

– const_int : l‘indice de la dernière case du tableau

– nom_tab contient (const_int+1) éléments

– Type : tout type dans VB.Net (y compris les objets)

– Exp: Dim Tab(3) As Integer  déclare un tableau de 4

entiers

– Accès 1ère case : indice 0 exp: Tab(0)=8

• Tableau à 2 dimensions :

Dim nom_tab(const_int1, const_int2) as type

– Accès : Tab(i,j)

W.Ayadi, Cours EDBD, FSEGT

10

Les tableaux

• Les tableaux sont des objets :

– Length : le nombre d'éléments total dans le

tableau.

x = t.Length

– Rank : donne le nombre de dimensions d‘un

tableau.

nb_dim=mat.Rank  nb_dim : 2

W.Ayadi, Cours EDBD, FSEGT

11

Les tableaux

• Redimensionner un tableau : Il est possible de

redimensionner des tableaux au moment de

l’exécution avec les instructions :

– Redim : Dans ce cas, toutes les anciennes valeurs seront

perdues

Exemple : Redim Test(30)

– Redim Preserve : Dans ce cas, on préserve toutes les

données

Exemple : Redim Preserve Test(30)

• Erase efface le tableau et récupère l'espace

Exp: Erase Tab

• Pour obtenir une copie 'indépendante' dans un

nouveau tableau : Tab2=Tab1.clone .

Rq: Tab2=Tab1.copy  copie ref seulement

W.Ayadi, Cours EDBD, FSEGT

12

Les tableaux

• Déclaration dynamique :

1. Dim nom_tableau ( ) as type déclaré mais n'existe

pas

2. Dès qu’on saisit le nbr d’éléments et avant la 1ère

utilisation du tableau :

• Redim nom_tableau (nbr) as type

3. Utiliser le tableau

• Classe Array :

– Ind=Array.IndexOf (tab,elt)

– Array.Sort(tab)

– Array.Reverse(tab)

W.Ayadi, Cours EDBD, FSEGT

13

Les chaînes de caractères

• Les chaînes de caractères sont des objets de

type String.

• pour manipuler les chaines: Utiliser les

propriétés et méthodes de la classe

System.String

W.Ayadi, Cours EDBD, FSEGT

14

Les chaînes de caractères

• Exemples: Dim ch as String = "Cours VB.net "

– ch.chars(i) : retourne ch(i)

– ch.Length : retourne la longeur de ch

– ch.Substring(ind_deb,nb_car) : retourne la

souschaine de longeur nb_car extraite à partir de

l‘indice ind_deb.

– ch1.Equals(ch2) : retourne true si ch1=ch2, false

sinon

Advertisement

– ch1.CompareTo(ch2) : retourne un entier <0

(ch1<ch2); >0 (ch1>ch2); 0 (ch1=ch2).

W.Ayadi, Cours EDBD, FSEGT

15

Les chaînes de caractères

• ch1.Insert(pos, ch2) : insert ch2 dans ch1 à

l‘indice pos

• ch.Trim( ): enlève les espaces

• ch.ToUpper( ) / ch.ToLower( ): majuscule /

minuscule

• ch.IndexOf(ch2[,ind]): recherche ch2 dans ch1

*à partir de l‘indice ind]

• ch.Replace(str1,str2): remplace dans ch toute

occurrence de str1 par str2

W.Ayadi, Cours EDBD, FSEGT

16

Les enregistrements (structures)

• Les structures permettent de regrouper des

données de différents Types

• Déclaration :

Public Structure nom_str

public champ1 as type1

public champ2 as type2

..

End structure

• Utilisation : dim v as nom_str

W.Ayadi, Cours EDBD, FSEGT

17

Les enregistrements (structures)

• Exp:

Public Structure Adresse

Dim Numero As Integer

Dim Rue As String

Dim Ville As String

End Structure

Dim MonAdresse As Adresse

• Accès aux champs d‘une variable de type structure :

MonAdresse. Numero =… MonAdresse. Ville =... …

W.Ayadi, Cours EDBD, FSEGT

18

Les opérateurs

• Opérateur d‘affectation : = (qque soit le type)

• Les opérateurs arithmétiques : +, -, *, /

(Division), \ (Division entière), Mod, ^

• Les opérateurs de comparaison: =, <>, <,>,

>=,<=, Is (O1 Is O2: True si O1 et O2 font

référence au même objet), IsNot, …

W.Ayadi, Cours EDBD, FSEGT

19

Les opérateurs

• Les opérateurs logiques :and, or, xor, Not,…

– AndAlso (if (exp1) AndAlso (exp2), idem que «et

logique»,mais exp2 ne sera évalué que si exp1 est

vrai),

– OrElse (if (exp1) OrElse (exp2), idem que «ou

logique»,mais exp2 ne sera évalué que si exp1 est

faux),…

W.Ayadi, Cours EDBD, FSEGT

20

Les opérateurs

• Concaténation : &

A= "VISUAL"

B= " "

C= "BASIC"

D=A & B & C donne D="VISUAL BASIC"

• Le signe + peut aussi être utilisé mais il est plutôt

réservé aux additions de variables numériques.

• &= permet aussi la concaténation A&=B est

équivalent à A= A&B

W.Ayadi, Cours EDBD, FSEGT

21

Les structures de contrôle

Les structures conditionnelles:

If condition then

ins° 1

...

Else

ins° j

...

End If

• Select case <expression>

Advertisement

case val1

bloc ins° 1

case val2

bloc ins° 2

...

case Else

bloc ins°else

End Select

<expression> : entière, Réelle,

Booléenne, Chaine de

caractères

W.Ayadi, Cours EDBD, FSEGT

22

Les structures conditionnelles

Exemples:

  • Select case reponse

case "oui","OUI"

console.writeline("reponse

positive")

case "non","NON"

console.writeline("reponse

negative")

case else

Console.writeline("erreur")

End select

  • Select case heure

Case 8 to 12

Console.writeline("Matin")

Case 13 to 18

Console.writeline("après-

midi")

Case 19 to 22

Console.writeline("soir")

Case is >=22

Console.writeline("nuit")

Case else

Console.writeline("heure

invalide")

End select

W.Ayadi, Cours EDBD, FSEGT

23

Les structures itératives

W.Ayadi, Cours EDBD, FSEGT

24

Procédures et fonctions

1) Procédure:

  • [Static] [Private | Public] Sub nom_Sub ([Liste_paramètres])

Bloc d’Ins°

End Sub

  • Appel : nom_sub ([par1, par2, ..., parn]) ou Call nom_sub

([par1, par2, ..., parn])

2) Fonction :

  • [Static] [Private | Public] Function nom_function

([Liste_paramètres]) As type

Bloc d’ins°

return res

End Function

  • Appel : varRes = nom_fonction ([par1, par2, ..., parn])

W.Ayadi, Cours EDBD, FSEGT

25

Passage de paramètres

• Pour chaque paramètre d‘une fonction ou

procédure, il faut spécifier :

– Le mode de passage (par valeur ou par référence)

– Le nom

– Le type

• Mode de passage de paramètres par valeur :

ByVal

• Mode de passage de paramètres par référence

: ByRef

W.Ayadi, Cours EDBD, FSEGT

26

Passage de paramètres

• Exemple :

– Sub MaProcedure (ByRef x as Long, ByVal y As

Long)

…..

End Sub

– Dim A, B As Long

MaProcedure (A, B)

W.Ayadi, Cours EDBD, FSEGT

27

Advertisement

Procédures événementielles

• Les procédures événementielles indiquent :

– L‘élément de la feuille (form) déclenchant l‘événement

(exp bouton)

– L‘événement déclencheur (exp Click)

– Les actions (le code) à faire lorsque l‘événement est

déclenché

• Syntaxe:

Private Sub cmdOK_Click (ByVal sender As

System.Object, ByVal e As System.EventArgs) Handles

cmdOK.Click

'Corps de la procédure événementielle

End Sub

L‘exécution de la procédure se fera automatiquement

quand l‘utilisateur clique sur le bouton ayant la

propriété name=cmdOK.

W.Ayadi, Cours EDBD, FSEGT

28

Boîtes de dialogue

A) Boîte de saisie : Permet à l‘utilisateur de saisir

une chaine de caractères.

• InputBox:

– Texte dans la boite (la question à afficher à

l‘utilisateur)

– Le titre de la boîte

– Valeur par défaut du texte

W.Ayadi, Cours EDBD, FSEGT

29

Boîtes de dialogue

• Exp:

Dim resultat as String

resultat = InputBox("Veuillez saisir votre nom",

"identification", "votre nom")

• Si Cancel alors resultat  chaine vide

W.Ayadi, Cours EDBD, FSEGT

30

Boîtes de dialogue

B) Boîte de message: Permet d‘afficher une

information à l‘utilisateur en lui donnant la

possibilité de répondre (par des boutons).

• MessageBox.show :

– Texte dans la boite (Le message ou question à afficher

à l‘utilisateur)

– Le titre de la boîte

– Les boutons à mettre dans la boite :

MessageBoxButtons.OK |OKCancel | AbortRetryIgnore |

YesNOCancel | YesNo | RetryCancel

W.Ayadi, Cours EDBD, FSEGT

31

Boîtes de dialogue

• L‘icône de la boîte :

MessageBoxIcon.Information|Exclamation|

Error|Question|Hand

• Bouton par défaut :

MessageBoxDefaultButton.Button1|Button2|

Button3

W.Ayadi, Cours EDBD, FSEGT

32

Boîtes de dialogue

Dim rep As Integer

rep=MessageBox.Show("Voulez vous enregistrer en quittant

l’application", "Fin de programme",

MessageBoxButtons.YesNoCancel,

MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)

W.Ayadi, Cours EDBD, FSEGT

33

Boîtes de dialogue

rep recevra : DialogResult.OK| DialogResult.Cancel |

DialogResult.Abort | …

• 1  si OK

• 2  si Cancel

• 3  si Abort

• 4  si Retry

• 5  si Ignore

• 6  si Yes

• 7  si No

W.Ayadi, Cours EDBD, FSEGT

34