Éléments de programmation

1 - Les fichiers

1 - Les fichiers à accès séquentiel

Il existe de nombreuses surcharges de Stream, le code ci-dessous permet de conserver l'accentuation des lettres dans les fichiers texte.
La ligne commençant par If Dir... vérifie l'existence du fichier. On peut utiliser cette méthode au lieu d'un bloc TRY si la localisation du fichier ne pose pas de problèmes. Dans cet exemple, les lignes de texte sont placées dans un tableau.
Dans la boucle While... End While, la ligne While sr.peek <> -1 teste la fin du fichier.
Imports System.IO
Private Sub Chargement()
  If Dir(MonFichier) = Nothing Then Exit Sub
  Dim sr As New StreamReader(Fichier, System.Text.Encoding.Default)
  While sr.Peek <> -1
    i +=1
    Tableau(i) = sr.ReadLine
  End While
  sr.close()
End Sub


Dans la procédure de sauvegarde, le paramètre False oblige à remplacer le fichier existant, alors que True ajouterait l'écriture en complément du fichier existant.

Private Sub Sauvegarde()
  Dim sw As New StreamWriter(MonFichier, False,
System.Text.Encoding.Default)
  For i = 0 To Fin
    sw.WriteLine(Tableau(i))
  Next
  sw.Close()
End Sub

2 - Les fichiers à accès direct

.

3 - Les fichiers binaires

.

4 - Les commandes sur les fichiers

Supprimer un fichier du disque dur
Kill("Document.txt")

2 - Les tableaux

Dim T1(x) Voici un tableau de taille fixe à une seule dimension.
Il y a x+1 valeurs dans ce tableau, x commençant à l'indice 0.
Dim T1() Un tableau dynamique doit d'abord être déclaré (ci-contre),
puis dimensionné (ligne suivante)
Redim T1(12) Le tableau précédemment déclaré est redimensionné.
Toutes les valeurs sont effacées
Redim Preserve T1(24) Le tableau précédemment déclaré est redimensionné.
Les valeurs sont conservées
Ubound(T1) Renvoie l'index de valeur maximale
Ubound(T1,x) x est le numéro de position de la dimension pour les tableaux à plusieurs dimensions
ReDim Preserve T1 (Ubound(T1)+1) Augmente le tableau dynamique d'une unité

3 - Les énumérations

Les énumérations permettent de définir un type de variable dont les valeurs sont nommées, ce qui les rend plus "parlantes"
Public Enum Civilité
  Monsieur
  Madame
  Mademoiselle
End Enum
Le 1er élément de l'énumération prend la valeur 0, le second 1, etc... Dans cette 1ère énumération Monsieur a donc la valeur 0 et Madame a la valeur 1.
On peut cependant changer l'ordre et la valeur des index en leur affectant une valeur entière.
Public Enum Civilité
  Madame = 2
  Mademoiselle = 3
  Monsieur = 1
End Enum
On peut ensuite déclarer une variable du type de l'énumération...
Dim CivilitéMembre As Civilité
... et utiliser les membres de l'énumération, plus parlants que des valeurs numériques.
MaCivilité = CivilitéMembre.Monsieur

Exemple : Plutôt que de manipuler un tableau à l'aide d'indices, on peut énumérer le nom des colonnes et/ou celui des lignes. On peut ainsi avoir :
Tableau(Ligne.février, Colonne.crédit) = Montant
Ce qui est plus parlant que...
Tableau(2,6) = Montant

4 - Les collections

Une collection est un ensemble d'objets. Elle se distingue des objets qui la composent par un "s" en fin de nom. Tous les contrôles d'un formulaire font partie de la collection "Controls".
Pour utiliser une nouvelle collection, Il faut d'abord la déclarer, puis y ajouter des éléments.
Private MesBoutons As New Collection()
MesBoutons.Add(Btn1)
MesBoutons.Add(Btn2)

On peut ensuite utiliser la collection en parcourant tous ses membres avec une boucle For Each... Next.
Dans l'exemple ci-dessous, on parcourt la collection pour trouver et colorer en rouge le bouton sélectionné et remettre en bleu la sélection précédente.
Dim Btn As New Button
For Each Btn In MesBoutons
 Btn.ForeColor = Color.Blue
 If Btn.Text = ... Then
  Btn.ForeColor = Color.Red
 End If
Next

5 - Les structures

1 - La structure Point

Définir la position d'un objet (x, y) par rapport au coin supérieur gauche du formulaire.
Form1.Location = New Point(50, 80)

2 - La structure Size

Définir les dimensions d'un objet (longeur, hauteur)
Form1.Size = New Size(800, 600)

6 - Choix, boucles, conditions

1 - Choose

Choose permet de remplir un tableau de valeurs. Le premier paramètre de Choose doit commencer à la valeur 1.
For Li = 1 To 3
 Tableau(Li) = Choose(Li, "lundi", "Mardi", "Mercredi")
Next

7 - Les bases de données

1 - Rappel

Une base de données est un ensemble organisé d'informations sur un sujet particulier stocké dans un fichier.
Une base est constituée d'une, ou plus généralement, plusieurs tables ayant des relations entre elles (base de données relationnelles).
Une table est constituée d'enregistrements correspondant aux lignes d'un tableau (par exemples les données d'un client).
Chacune des informations d'un enregistrement est un champ et constitue les colonnes du tableau (par exemple : nom, prénom, date de naissance, etc...).

2 - Ado.Net

3 - Accès aux bases de données

Pour les débutants, la méthode la plus simple consiste à utiliser les options fournies par Visual Studio. Ainsi, l'écriture du code est réduite au minimum.
Cette méthode a été testée avec succès dans l'environnement de développement Visual Basic 2002.

1 - Établir la connexion

Allez dans le menu "Outils / Se connecter à une base de données".
1°) Dans l'onglet "Fournisseur", choisissez celui correspondant à votre base de données (Ce sera Microsoft Jet 4.0 OLE DB Provider" pour une base de données Access).
2°) Dans l'onglet "Connexion", utilisez le bouton pour parcourir les dossiers et sélectionnez votre base de données.
Un bouton, en bas de l'onglet, permet de vérifier que la connexion fonctionne.

2 - Charger une table en mémoire

Nous avons maintenant besoin d'un objet DataAdapter qui joue le rôle de pont entre le DataSet et la base de données. Ce pont utilise la méthode Fill pour charger les données à partir de la source et la méthode Update pour mettre à jour dans la base, les données modifiées par l'utilisateur.
- Si la fenêtre "Explorateur de serveurs" n'est pas présente sur votre écran, faites-la apparaître. Dans cet explorateur, sélectionnez la table qui vous intéresse, et par un "Drag and Drop", faites-la glisser sur votre formulaire. VB crée automatiquement 2 objets qui vont se placer dans la zone située sous le formulaire. Un objet OleDbConnection et un objet OleDbDataAdapter (toujours en considérant une base de données Access).
- Dans les propriétés du OleDbDataAdapter, on peut vérifier que les 3 commandes essentielles à toute opération sur une base de données ont été créées 'DeleteCommand', 'InsertCommand' et 'UpdateCommand'. On peut éditer ces commandes SQL en allant sur la propriété "CommandText" de chaque commande et en cliquant sur le bouton situé à droite.

3 - Création du DataSet

Le DataSet est un cache en mémoire qui contient des données extraites de la base.
Pour créer le DataSet, cliquez sur le lien "Générer le groupe de données" qui se trouve sous la liste des propriétés du OleDbDataAdapter. Une fenêtre s'ouvre, cliquez sur 'Ok'. VB crée automatiquement un nouvel objet 'DataSet' qui va se placer dans la zone située sous le formulaire.

4 - Afficher le contenu du DataSet

Les données qui nous intéressent sont maintenant dans le DataSet. Pour les afficher à l'écran, ajoutez sur votre formulaire un contrôle DataGrid. Il faut ensuite lier ce contrôle au DataSet. Pour cela, dans la propriété 'DataSource' du DataGrid, sélectionnez 'DataSet11.Adresses' (Adresses étant le nom de notre table).

Pour remplir le DataGrid et mettre à jour les données modifiées, ajoutez également 2 boutons que nous appellerons 'btnLecture' et 'btnMiseAJour'.
Ajoutez, pour finir le code suivant :
Private Sub btnLecture_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnLecture.Click
  DataSet11.Clear()
  OleDbDataAdapter1.Fill(DataSet11, "adresses")
End Sub

Private Sub btnMiseàJour_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnMiseàJour.Click
  OleDbDataAdapter1.Update(DataSet11, "adresses")
End Sub
Voilà; l'application est simple, mais elle fonctionne.

8 - Petites astuces diverses

1 - Génération d'un nombre aléatoire

Dim x As Random = New Random()




Statistiques :      Conformité :  Valid XHTML 1.1 © Christian Soulié
Dernière mise à jour le 5 avril 2010.
Architecture de Visual Basic.Net -  Contrôles