<< Retour au sommaire

 

VB A, Les fichiers de données de type aléatoire

 

 

 

Table des matières

  1. Présentation ;
  2. Un exemple dans EXCEL.

 

Présentation

 

Les fichiers de données de type « aléatoire » sont des fichiers dont le mode d’accès est appelé « à accès direct ».

Lorsque le fichier est ouvert, l’accès aux différentes lignes de ce fichier est réalisable à partir d’un numéro de ligne. Voici pourquoi le mode d’accès est « Accès direct ».

Dans ce cas de figure, la ligne est dite « Enregistrement ».

Il conviendra alors d’utiliser des lignes de même taille, c’est pourquoi nous allons utiliser un type personnalisé pour déclarer une variable qui servira d’accès au fichier.

 

Voici un exemple qui va permettre d’écrire le prénom, le nom et la ville pour 3 clients.

 

Public Type Personne

‘ déclaration des 3 variables contenues dans le type Personne

Prénom As String * 25

Nom As String * 25

Ville As String * 25

End Type

 

Sub Création()

‘ déclaration de la variable Client de type Personne

Dim Client As Personne

‘Ouverture du fichier MesClients en mode accès direct

‘ Le mode d’accès est donc Random

Open "c:\MesClients.txt" For Random As #1 Len = Len(Client)

‘ Ici, nous avons utilisé Len = Len(Client » pour définir la taille d’un enregistrement

‘Affectation des valeurs pour la ligne numéro 1

Client.Prénom = "Georges"

Client.Nom = "MARTIN"

Client.Ville = "ROCHEFORT"

‘ écriture de la ligne numéro 1

Put #1, 1, Client

‘Affectation des valeurs pour la ligne numéro 2

Client.Prénom = "Pascal"

Client.Nom = "DURAN"

Client.Ville = "LA ROCHELLE"

‘ écriture de la ligne numéro 2

Put #1, 2, Client

‘Affectation des valeurs pour la ligne numéro 3

Client.Prénom = "Jean-Paul"

Client.Nom = "DUPOND"

Client.Ville = "BORDEAUX"

‘ écriture de la ligne numéro 3

Put #1, 3, Client

‘ Fermeture du fichier

Close #1

End Sub

 

Pour écrire un enregistrement, nous avons utilisé l’instruction Put.

La syntaxe :

Put NuméroCanal, NuméroEnregistrement, LigneAÉcrire

 

Voici maintenant comment lire dans un fichier aléatoire.

Dans l’exemple qui suit, nous allons ouvrir le fichier MesClients en mode « Accès direct », et nous allons lire l’enregistrement numéro 2 que nous afficherons dans une boîte de message.

 

Public Type Personne

‘ Déclaration des 3 variables contenues dans le type Personne

Prénom As String * 25

Nom As String * 25

Ville As String * 25

End Type

 

Sub Lecture()

‘ Déclaration de la variable Client de type Personne

Dim Client As Personne

‘ Ouverture du fichier MesClients en mode accès direct

Open "c:\MesClients.txt" For Random As #1 Len = Len(Client)

‘ Lecture de l’enregistrement numéro 2

Get #1, 2, Client

‘ Fermeture du fichier

Close #1

‘ Affichage du contenu de la variable Client contenant l’enregistrement numéro 2

MsgBox (Client.Prénom + " " + Client.Nom + " " + Client.Ville)

End Sub

 

Pour lire un enregistrement de fichier ouvert en accès direct, nous avons utilisé l’instruction Get.

 

La syntaxe :

Get NuméroCanal, NuméroEnregistrement, VariableRéceptionEnregistrement

 

 


Un exemple dans EXCEL

 

Dans cet exemple, nous allons gérer les coordonnées et les identifiants de clients.

Vous avez un classeur dont la principale feuille s’intitule « LesClients », et 3 titres de colonnes, « Identifiants », « Noms » et « Prénoms ».

 

La première macro s’intitule « NouveauClient », elle est assignée au raccourci clavier CTRL +Y, elle permet d’insérer l’identifiant du nouveau client, son nom et son prénom dans une nouvel ligne de la feuille. Elle enregistre également ces informations dans un fichier de données intitulé « clients.txt », mais dans ce fichier de données, on enregistre également le « téléphone » et « l’adresse de messagerie » du client…

Conclusion, dans le fichier de données, nous enregistrons 2 informations supplémentaires, le « téléphone » et « l’E-Mail ».

Le numéro d’enregistrement du client dans le fichier clients.txt correspond à son identifiant.

 

Dans la deuxième macro qui s’intitule « Voir « Client, assignée au raccourci clavier CTRL +T, nous affichons l’intégralité des données personnelles du client correspondant à la position du curseur. Par conséquent, avant de lancer cette macro, vous devez d’abord positionner le curseur sur l’un des identifiants du tableau de la feuille LesClients.

 


Le code de la macro NouveauClient :

 

Public Type TypeClient

Identifiant As Integer

Nom As String * 25

Prénom As String * 25

Téléphone As String * 14

EMail As String * 25

End Type

 

Sub NouveauClient()

'

' NouveauClient Macro

' Touche de raccourci du clavier: Ctrl+y

' Déclaration d'une variable de type TypeClient

Dim Client As TypeClient

' Atteindre la première cellule de la feuille LesClients

Application.Goto Reference:="LesClients!RC"

' atteindre la nouvelle ligne du tableau client

' Donc, aller d'abord à la dernière cellule de la feuille

Range("a65536").Select

' Atteindre la dernière ligne de la région de données supérieure

Selection.End(xlUp).Select

' Passage à la ligne suivante

ActiveCell.Offset(1, 0).Select

' Enregistrement des données du nouveau client dans la variable Client

Client.Identifiant = InputBox("Veuillez saisir l'identifiant du client", "Identifiant")

Client.Nom = InputBox("Veuillez saisir le nom du nouveau client", "Nom du client")

Client.Prénom = InputBox("Veuillez saisir le prénom du nouveau client", "Prénom du client")

Client.Téléphone = InputBox("Veuillez saisir le téléphone du nouveau cleint", "Téléphone du client")

Client.EMail = InputBox("Veuillez saisir l'adresse de messagerie du nouveau client", "E-Mail")

' insertion des données dans la nouvelle ligne du tableau de la feuille

ActiveCell.Value = Client.Identifiant

ActiveCell.Offset(0, 1).Select

ActiveCell.Value = Client.Nom

ActiveCell.Offset(0, 1).Select

ActiveCell.Value = Client.Prénom

' Revenir à la première cellule de la nouvelle ligne

ActiveCell.Offset(0, -2).Select

' Ouverture du fichier de données clients.txt

Open "c:\clients.txt" For Random As #1 Len = Len(Client)

' écriture du nouvel enregistrement

Put #1, CInt(Client.Identifiant), Client

' Fermeture du fichier de données Clients.txt

Close #1

' Message de fin d'enregistrement

MsgBox ("L'enregistrement du nouveau client a été réalisé avec succès")

End Sub

 

Le code de la macro VoirClient :

 

Public Type TypeClient

Identifiant As Integer

Nom As String * 25

Prénom As String * 25

Téléphone As String * 14

EMail As String * 25

End Type

 

Sub VoirClient()

'

' VoirClient Macro

' Touche de raccourci du clavier: Ctrl+t

'

' déclaration d'une variable de type TypeClient

Dim Client As TypeClient

' récupération et conversion de l'identifiant 'identifiant en un entier

Dim Identifiant As Integer

Identifiant = ActiveCell.Value

' ouverture du fichier Clients.txt

Open "c:\clients.txt" For Random As #1 Len = Len(Client)

' Sélection de l'enregistrement correspondant au client du tableau dans la feuille

Get #1, Identifiant, Client

' Fermeture du fichier Clients.txt

Close #1

' Affichage de l'enregistrement

MsgBox ("Le client " + Client.Nom + " " + Client.Prénom + " Téléphone : " + Client.Téléphone + " E-Mail : " + Client.EMail)

 End Sub

 

 

Philippe BOULANGER