1 - Les fichiers
- L'accès aux fichiers est basé sur un concept de flux (Stream). C'est une séquence d'octets reçue ou envoyée vers un périphérique. Il faut donc créer un objet Stream et l'associer à un fichier.
- La gestion des fichiers fait appel à l'espace de nom
SYSTEM.IO. Il est donc nécessaire d'importer cet espace au début de la classe.
- Il est prudent de placer le code dans un bloc
TRY pour tenir compte des exceptions qui pourraient se produire (Voir page 10, la gestion des erreurs).
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()