chapitre 2 programmation en visual basic. 2 application visual basic feuilles d'application...

40
Chapitre 2 Programmation en Visual Basic

Upload: claude-pichard

Post on 04-Apr-2015

139 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

Chapitre 2Programmation en Visual Basic

Page 2: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

2

Application Visual Basic

feuilles d'application programmes VB

Sub OK_click () Feuille_salaire.unload msgbox "calcul des salaires de " & mois.Text & " en cours" calcule_salaires(mois.Text)End Sub

Sub OK_click () Feuille_salaire.unload msgbox "calcul des salaires de " & mois.Text & " en cours" calcule_salaires(mois.Text)End Sub

Sub OK_click () Feuille_salaire.unload msgbox "calcul des salaires de " & mois.Text & " en cours" calcule_salaires(mois.Text)End Sub

Sub OK_click () Feuille_salaire.unload msgbox "calcul des salaires de " & mois.Text & " en cours" calcule_salaires(mois.Text)End Sub

+

Page 3: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

3

Passage de l'algorithmique à Visual Basic

Le passage de l'algorithmique à la programmation en Visual Basic est réalisé en deux étapes:

Transformation du lexique en une série de déclarations Visual Basic

Transformation des algorithmes en un programme Visual Basic

Page 4: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

4

Programme associé à une feuille d'application

Le code associé à une feuille d'application comporte trois parties :

on peut écrire des actions communes à plusieurs feuilles dans un module VB (xxx.bas)

déclarations

procéduresévénementielles

procéduresgénérales

Feuille1.frm

Page 5: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

5

Les déclarations

Permettent de construire le lexique : définition des variables : dim , public définition des constantes : const

Les identificateurs de variables et de constantes en Visual Basic : commencent par une lettre, sont composés de lettres, chiffres et _ Exemples :

– mon_idf– mon_idf2– 2x : identificateur incorrect

Typage des objets : integer entier entre -32 767 et 32 767 long entier entre -2.109 et 2.109

single réel simple précision double réel double précision string chaîne de caractères boolean true ou false variant n'importe quel type défini par le programmeur

Page 6: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

6

Déclarations: règles de visibilité des objets

Dans le lexique global (objet Général, onglet Déclarations) d’une feuille d’application ou d’un module VB:

dim et const déclarent des objets existant dans la totalité de cette feuille ou de ce module

Dans une procédure ou une fonction d’une feuille d’application ou d’un module VB :

dim et const déclarent des objets existant uniquement dans cette procédure ou fonction (déclaration locale)

Dans le lexique global (objet Général, onglet Déclarations) d’un module VB : Public déclare des objets existant dans tous les modules et les feuilles

(déclaration globale)

Exemples de déclarations : dim i as integer Public const pi = 3.145927

Page 7: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

7

Règles de visibilité des objets : exemple

frm1.frm

déclarations (Général)

dim i1 as integer

procédures

Sub proc1()dim j as integer ... call proc2End Sub

Sub proc2()dim k as integer ...End Sub

peut accéder aux valeurs de i1, j, et g, mais pas de k, l, m, p, q, x et i2

frm2.frm

procédures

Sub proc3()dim l as integer ...End Sub

Sub proc4()dim m as integer ...

End Sub

Const i2 as integer

déclarations (Général)

module1.bas

procédures

Sub proc5()dim p as integer ...

p = fun6(1)End Sub

Function fun6(y as Long) as Longdim q as integer ...End Function

Public g as integerdim x as integer

déclarations (Général)

call proc3

peut accéder aux valeurs de i1, k, et g, mais pas de j, l, m, p, q, x et i2

peut accéder aux valeurs de i2, l, et g, mais pas de j, k, m, p, q, x et i1

peut accéder aux valeurs de i2, m, et g, mais pas de j, k, l, p, q, x et i1

peut accéder aux valeurs de g, p et x, mais pas de j, k, l, m, q, i1, i2

peut accéder aux valeurs de g, q, x, y mais pas de j, k, l, m, p, i1, i2

Page 8: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

8

Définition et appel d’une procédure

Définition d'une procédure :

Sub nom_procédure(param1 as type1, ..., paramn as typen) déclarations instructionsEnd Sub

exemple :

Sub afficher_carres(min as integer, max as integer)Dim i as integer ' compteur

For i = min To max Debug.Print i*i Next i

End Sub

Appel d'une procédure : call nom_procédure(val1 , ..., valn) exemple : call afficher_carres(3,7)

NB: lorsqu’une procédure a 0 ou 1 paramètre, call n’est pas obligatoire

Page 9: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

9

Définition et appel d’une fonction

Définition d'une fonction :

Function nom_fonction(param1 as type1, ..., paramn as typen) as type déclarations instructionsEnd Function

Une définition de fonction se termine par l'affectation d'une variable de même nom que la fonction et qui correspond au résultat de la fonction

Exemple :

Function surface(long as double, large as double) as double surface = long * large

End Function

Appel d'une fonction : nom_fonction(val1 , ..., valn)

exemple : If surface(7,x) < 20 Then s = surface(8,x)

Page 10: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

10

Procédures événementielles et proc. générales

Procédures événementielles : permettent de traiter un événement concernant un objet graphique (ex : Form_load(), cmd_ok_click(), txt1_change(), …)

sont toujours écrites dans une feuille d’application

Procédures générales : permettent d'écrire des actions intermédiaires utilisables dans différentes parties

du logiciel

sont écrites dans une feuille d’application si elle concernent une feuille particulière, et dans un module VB sinon

Principe de programmation en VB : tous les traitements complexes sont réalisés dans des procédures générales

Page 11: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

11

Les procédures événementielles

La liste des objets du formulaire est accessible par la boîte combo Objet

La liste des événements et méthodes spécifiques au type de l’objet est accessible par la boîte combo Proc

Page 12: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

12

Les procédures générales

Une procédure générale (ou procédure - tout court) peut être appelée par : une procédure événementielle par une procédure générale

Page 13: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

13

Règles de visibilité des procédures et des fonctions

Dans une feuille d’application : une procédure ou fonction définie peut uniquement être appelée depuis cette

feuille (par une autre procédure ou fonction)

Dans un module Basic : Private indique une procédure ou fonction visible seulement dans ce module Public indique une procédure ou fonction visible dans tous les modules En l’absence de Private et Public, une procédure ou fonction est définie Public

Page 14: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

14

Visibilité des procédures et des fonctions : exemple

frm1.frm

déclarations (Général)

dim i1 as integer

procédures

Sub proc1 ()dim j as integer ... call proc2End Sub

Sub proc2 ()dim k as integer ...End Sub

peut appeler proc1, proc2, et fun6 mais pas proc3, ni proc4,ni proc5

frm2.frm

procédures

Sub proc3 ()dim l as integer ...End Sub

Sub proc4 ()dim m as integer ...

End Sub

dim i2 as integer

déclarations (Général)

call proc3

peut appeler proc1, proc2 et fun6 mais pas proc3, ni proc4, ni proc5

peut appeler proc3, proc4 et fun6 mais pas proc1, ni proc2, ni proc5

peut appeler proc3, proc4 et fun6 mais pas proc1, ni proc2, ni proc5

peut appeler proc5 et fun6, mais pas proc1, ni proc2, ni proc3, ni proc4

peut appeler proc5 et fun6, mais pas proc1, ni proc2, ni proc3, ni proc4

module1.bas

procédures

Private Sub proc5()dim p as integer ...

p = fun6(1)End Sub

Function fun6(y as Long) as Longdim q as integer ...End Function

Public g as integerdim x as integer

déclarations (Général)

Page 15: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

15

Exercice 1

On veut réaliser un logiciel VB comprenant deux feuilles : frm1 et frm2. frm1 utilise les procédures p1, p2 et p4 frm1 utilise les variables a et b frm2 utilise les procédures p1, p2 et p3 frm2 utilise les variables a et c p1 utilise la variable x p2 utilise les variables x, z et v p3 utilise la variable z p4 utilise la variable w

Indiquez dans quels feuilles et/ou modules VB seront placées les procédures et les variables correspondant à l'exemple ci-dessus

Page 16: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

16

Exercice 2

1. Ecrire la fonction fact(n as Integer) qui retourne la factorielle du nombre n

2. Sachant que le nombre de combinaisons de p éléments dans un ensemble de n éléments est défini par :

écrire la fonction combinaison(n as Integer, p as Integer).

3. Construire l’interface ci-dessous. Un clic sur le bouton Cnp affiche le nombre de combinaisons dans une boîte de message

!)(!

!

pnp

nC p

n

Page 17: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

17

Exercice 3

Construire un projet VB contenant deux feuilles d’applications : un convertisseur € $ un convertisseur $ €

Remarque : la constante de parité € $ ne devra être définie qu’une seul fois dans le

logiciel

Page 18: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

18

Instructions simples

Affectation : notée = exemples :

x = 3txt_nom.visible = false

Séparateur d'instructions: : (inutile à la fin d'une ligne) exemple :

x = x + 1: y = y + 1z = z + 1

Commentaires: après le caractère ' exemple :

z = z + 1 ' augmente z de 1

Page 19: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

19

Conditionnelles

Si-alors

Si-alors-sinon

Si-alors-sinon en cascade

If condition Then instructionIf condition Then instruction

Mono-ligne :

If condition Then instructionsEnd If

If condition Then instructionsEnd If

Multi-ligne :

If condition Then inst1 Else inst2If condition Then inst1 Else inst2

Mono-ligne :

If condition Then instructions1Else instructions2End If

If condition Then instructions1Else instructions2End If

Multi-ligne :

If cond1 Then instructions1

ElseIf cond2 Then instructions2…Else instructionsnEnd If

If cond1 Then instructions1

ElseIf cond2 Then instructions2…Else instructionsnEnd If

!Saut de ligne obligatoire après Then et Else dans la forme multi-ligne

Page 20: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

20

Conditionnelles (suite)

Sélections multiples :

Exemple :Select case carcase "'"

type_car = "quote"case ",", ";", ".", ":", "!", "?"

type_car = "ponctuation"case "0" To "9"

type_car = "chiffre"case "a" To "z", "A" To "Z"

type_car = "lettre"case Else

type_car = "caractère inconnu"End Select

Select case variable case liste-valeurs1

instructions1

case liste-valeurs2

instructions2 … case liste-valeursn instructionsn End Select

Select case variable case liste-valeurs1

instructions1

case liste-valeurs2

instructions2 … case liste-valeursn instructionsn End Select

Page 21: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

21

Iterations

Boucles "tant que" :

Exemple :

i = 1do while i <= 4debug.print i : i = i + 1loop

Do while condition instructionsLoop

Do while condition instructionsLoop

Page 22: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

22

Iterations (suite)

Boucles "répéter ... jusqu'à"

Exemple:

i = 1do debug.print i : i = i + 1loop until i = 5

Boucles "pour" :

Exemple:

for i = 1 to 4 debug.print inext i

Do instructionsLoop Until condition

Do instructionsLoop Until condition

For variable = valeur-initiale To valeur-finale instructionsNext variable

For variable = valeur-initiale To valeur-finale instructionsNext variable

Page 23: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

23

Les principaux opérateurs

Opérateurs logiques

Opérateurs arithmétiques

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

Opérateur Signification

e1 And e2et

Not e non

e1 Or e2ou

e1 Xor e2 ou exclusif (soit e1, soit e2)

Opérateur Signification

=, <>, >, <, >=, <= =, , >, <, ,

Opérateur Signification

s1 & s2concaténation (mise bout-à-bout)

s Like motif s est semblable à motif (motif contient des car. * ? ...)

Page 24: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

24

Les fonctions prédéfinies de Visual Basic

Visual Basic dispose d'un grand nombre de fonctions prédéfinies : mathématiques chaînes de caractères, caractères conversion de types, formatage financières date et heure fichiers séquentiels bases de données gestion des erreurs accès à MS-DOS échange de données avec d'autres logiciels ...

Page 25: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

25

Principales fonctions mathématiques

Fonction Signification exemple

+,-,*,/ +, -, , /

x \ y x div y 5 \ 2 2

x Mod y x mod y 5 mod 2 1

x ^ y xy 2^3 8

Abs(x) |x| Abs(-3.2) 3.2

Cos(x) cos x Cos(0) 1

Exp(x) ex Exp(1) 2.718282

Fix(x) retourne l'entier sans les décimales Fix(-3.2) -3

Int(x) E(x) partie entière Int(-3.2) -4

Log(x) ln x Log(Exp(1)) 1

Rnd() retourne un nombre aléatoire entre 0 et 1 1 + Rnd() * 5

Sin(x) sin x Sin(0) 0

Page 26: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

26

Exercice 4

Ecrire la fonction entier_aleatoire(min as Long, max as Long) qui retourne un nombre entier aléatoire entre min et max.

Page 27: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

27

Principales fonctions sur les chaînes de caractères

Fonction Signification exempleInstr(s, ss) position de la première occurrence de la sous-

chaîne ss dans la chaîne sInstr("ok ok","ok") 1

Lcase(s) convertit en minuscules tous les caractères alphabétiques de s

Lcase("OK !")"ok !"

Left(s,n) chaîne correspondant aux n caractères de gauche de s

Left("Hello",4) "Hell"

Len(s) nombre de caractères de la chaîne s Len("bonjour !") 9

LTrim(n) chaîne où les espaces qui sont au début de s sont supprimés

LTrim(" ok ! ") "ok ! "

Mid(s, n1, n2) chaîne correspondant aux n2 caractères pris à partir de la position n1 dans s

Mid("Salut",3,2) "lu"

Right(s,n) chaîne correspondant aux n caractères de droite de s

Right("Hello",2) "lo"

RTrim(s) chaîne où les espaces qui sont à la fin de s sont supprimés

RTrim(" ok ! ") " ok !"

String(n,c) chaîne composée de n fois le caractère c String(3,"a") "aaa"

Trim(s) chaîne où les espaces qui sont au début et à la fin de s sont supprimés

Trim(" ok ! ") "ok !"

Ucase(s) convertit en majuscules tous les caractères alphabétiques de s

Ucase("hé") "HÉ"!

Page 28: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

28

Fonctions sur les chaînes de caractères : exercices

Exercice 5 : écrire une fonction qui teste si un caractère est une ponctuation

Exercice 6 : écrire la fonction insere_caractere(s as String, c as String, pos as Integer) as String qui retourne la chaîne s dans laquelle le caractère c a été inséré en position pos

Exercice 7: écrire une fonction qui étant donnée un chemin MS-DOS, absolu ou relatif, retourne la base du nom de fichier

"c:\mes documents\page1.html" "page1" "page2.bak" "page2"

Page 29: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

29

Fonctions sur les caractères, de conversion, de formatage

Fonction Signification Exemple

Asc(s) code numérique (ASCII) du 1e caractère de la chaîne s

Asc("BONJOUR") 66Asc("0") 48

Chr(n) caractère correspondant au code n

Chr(48) "0"Chr(13) "" (retour à la ligne)

C...(expr) convertit expr dans le type spécifié par ...

CStr(8/3) "2.66667 "CInt(8/3) 3CLng(8/3) 2.666666667CDbl(8/3) 2.666666667

IsNumeric(s) Retourne true si s corres-pond à la représentation d'un nombre

IsNumeric("-3,2") trueIsNumeric("alpha") false

Format(expr, format) chaîne correspondant au formatage de expr selon format

Format(18,"#,###.00 €") "18,00 €"Format(5100,"00 000") "05 100"

Remarque : un saut de ligne dans un fichier ou dans une zone de texte multi-ligne est composé de 2

caractères : 13 (retour chariot) et 10 (line-feed) : chr(13) + chr(10)

Page 30: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

30

Fonctions financières

Fonction Signification

DDB Amortissement d'un bien pour une année

FV Valeur future d'une annuité basée sur des paiements constants et périodiques et à un taux d'intérêt constant

IPmt Montant des intérêts pour une période donnée d'une annuité basée sur des paiements constants et périodiques et un taux d'intérêt constant

IRR Taux de retour interne pour une série de mouvements de trésorerie périodiques

NPer Nombre de périodes pour une annuité basée sur des paiements constants, périodiques et soumis à un taux d'intérêt constant

NPV Valeur nette actuelle d'un investissement, calculée en fonction d'une série de mouvements de trésorerie périodiques

Pmt Montant d'une annuité basé sur des paiements constants, périodiques et soumis à un taux d'intérêt constant

PV Valeur actuelle d'une annuité basée sur des paiements futurs constants et périodiques et à un taux d'intérêt constant

Rate Taux d'intérêt par période pour une annuité

SLN Amortissement direct d'un bien sur une période donnée

Page 31: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

31

Fonctions sur les dates

En VB, une date correspond à une nombre entier : le nombre de jours écoulés depuis le 30/12/1899 : 1/1/2002 37257

Fonction Signification ExempleDate() Date courante If Date() > DateValue("1/1/00") Then

DateAdd(type,n,date) Ajoute une durée de type à date

DateAdd("d",2,"1/2/01") 3/2/01DateAdd("m",2,"1/2/01") 1/4/01

DateDiff(type,d1,d2) Intervalle de temps de type entre d1 et d2

DateDiff("d","1/1/01","1/2/01") 31DateDiff("m","1/1/01","1/2/01") 1

DateValue(expr) Entier correspondant à la date expr

DateValue("1/1/00")+1 2/1/00

Format(date,format) Formatte date selon format

Format("1/1/02","dddd d mmm yy") mardi 1 janv 02Format(0,"dd/mm/yyyy") 30/12/1899Format("1/6/02", "mmmm") juin

IsDate(expr) Détermine si expr correspond à une date

IsDate("1/12/01") trueIsDate("1/14/01") falseIsDate("32/1/01") trueIsDate("demain") false

Now() Date et heure courantes

Page 32: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

32

Fonctions sur les dates (suite) et exercices

Exercice 8 : écrire une fonction qui détermine la date du lundi de la semaine d'une date donnée. Exemple : lundi("27/11/2001") 26/11/2001

Exercice 9 : écrire une fonction qui calcule l'âge d'une personne à une date donnée, connaissant sa date de naissance

Fonction Signification ExempleDay(date) n° du jour dans le mois de date Day("1/4/2002") 1

Month(date) n° du mois dans date Month("1/4/2002") 4

Year(date) Année dans date Year("1/4/2002") 2002

WeekDay(date) Jour de la semaine dans date WeekDay("1/6/2002") 1 : dimanche

Page 33: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

33

Fonctions sur les heures

En VB, une heure correspond à la fraction d'une journée : 12 h 0,5

Fonction Signification Exemple

dateDiff(type,d1,d2) Intervalle de temps de type entre d1 et d2

dateDiff("h","1/1/01","1/2/01") 744 ( = 31 x 24)

Time() Heure courante If Time() > TimeValue("12:00:00") Then …

TimeValue(expr) Nombre réel correspon-dant à l'heure expr

Cdbl(TimeValue("12:00:00")) 0.5

TimeValue("12:00:00")+1/(24*60) 12:01:00

Format(heure,format) Formatte heure selon format

Format("12:05:00","hh \h mm") 12 h 05

Hour(heure) Nombre d'heures dans heure

Hour("12:05:00") 12

Minute(heure) Nombre de minutes dans heure

Minute("12:05:00") 5

Second(heure) Nombre de secondes dans heure

Second("12:05:00") 0

Page 34: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

34

Fonctions système

Fonction ou instruction

Signification Exemple

Shell(commande) lance une commande MS-DOS et retourne 1 si la commande s'est correctement exécutée

e = Shell("C:\WINDOWS\CALC.EXE")If e = 1 Then …

Dir(chemin) Teste l'existence du répertoire ou du fichier indiqué par le chemin chemin

Dir("c:\autoexec.bat") "c:\autoexec.bat"

Dir("c:\windoze.daube") ""

FileCopy chemin1, chemin2

Copie le fichier indiqué par dans chemin chemin1 dans chemin2

FileCopy "c:\temp\f.txt" "c:\temp\f.bak"

MkDir chemin Crée le répertoire indiqué par le chemin chemin

MkDir "c:\temp\bak"

RmDir chemin Supprime le répertoire indiqué par le chemin chemin

RmDir "c:\temp\bak"

Page 35: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

35

Instructions et fonctions sur les fichiers 2 types de fichiers :

texte (lisibles par un éditeur de texte) binaires

2 modes d'accès aux données dans les fichiers :

accès séquentiel : pour accéder à la donnée i, il faut déjà avoir accédé à la donnée i – 1

accès direct (ou aléatoire) : on peut accéder directement à une donnée dans un fichier si l'on connaît sa position dans le fichier

Page 36: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

36

Manipulation des fichiers texte séquentiels

Fonction ou instruction Signification Exemple

Open chemin For As #num Ouvre le fichier indiqué par chemin en lecture, en écriture ou ajout sur le canal n° num

Open "c:\data.txt" For Input As #1

Input #num var1,…, varnLit les variables var1,…, varn dans le fichier ouvert sur le canal num

Input #1, nom, prenom

Line Input #num var Lit une ligne dans le fichier ouvert sur le canal num et la stocke dans la variable var

Input #1, ligne

Write #num expr1,…, exprnEcrit les expr. expr1,…, exprn dans le fichier ouvert sur le canal num

Write #1, nom, prenom

Close #num Ferme le fichier ouvert sur le canal num

Close #1

EOF(num) Retourne true si l'on est à la fin du fichier ouvert sur le canal num

If EOF(1) Then …

InputOutputAppend

Page 37: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

37

Exemple:chargement de zones de textes lues dans un fichier

Private Sub cmd_enregistrer_Click() Open "c:\donnees.txt" For Output As #1 Write #1, txt_nom.Text, txt_prenom.Text Close #1End Sub

Private Sub cmd_charger_Click() Dim nom, prenom As String

If Dir("c:\donnees.txt") = "" Then ' fichier inexistant MsgBox "c:\donnees.txt : fichier inexistant" Else Open "c:\donnees.txt" For Input As #1 Input #1, nom, prenom Close #1 txt_nom.Text = nom txt_prenom.Text = prenom End IfEnd Sub

Créer le formulaire suivant :

• "Enregistrer" sauve les données des zones de texte dans c:\donnees.txt

• "Charger" les recharge dans les zones

Page 38: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

38

Exercice 10 : manipulation des fichiers texte séquentiels

Remplir une boîte combo avec des éléments lus dans un fichier texte

1. Créer un formulaire contenant seulement une boîte combo

2. Ecrire le code qui permet de remplir celle-ci avec des éléments lus dans un fichier texte (lui-même créé avec le bloc-notes par exemple)

Page 39: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

39

Les tableaux

Déclaration des tableaux VB : Dim ou Public Exemples:

Dim A(10) as String

Dim B(8,3), C(8,5) as Integer

Par défaut les tableaux sont indicés à partir de 1 ceci peut être modifié par : Dim A(0 To 9) as String

Utilisation des tableaux VB : les tableaux sont notés comme les fonctions : risque de confusion exemples:

For i = 1 To 8For j = 0 To 5

C(i,j) = B(i,1) + 1Next j

Next i

Page 40: Chapitre 2 Programmation en Visual Basic. 2 Application Visual Basic feuilles d'application programmes VB Sub OK_click () Feuille_salaire.unload msgbox

40

Exercice 11

Ecrire un programme VB qui :1. lit cinq nombres avec une inputBox et les place dans un tableau

2. enregistre les nombres de ce tableau dans un fichier séquentiel dont le nom est choisi par une boîte de dialogue de type ouverture de fichier