chapitre n°4: les fichiers en vb -...

37
Chapitre n°4: Les Fichiers En VB.Net

Upload: vudang

Post on 07-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Chapitre n°4:Les Fichiers En VB.NetLes Fichiers En VB.Net

Page 2: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Introduction

� Dans ce chapitre, nous abordons un point

important du Framework : l'utilisation des flux et la

gestion du système de fichiers.

� Un fichier est un support de stockage� Un fichier est un support de stockage

permanant (à l’opposition des simples variables qui

sont volatiles) permettant de sauvegarder une

large quantité de données .

� Dans VB.net, il y a une hiérarchie de stockage

des données allant du bit vers le fichier.

Page 3: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

L’hiérarchie de Données

1ère LFSG

3ème LFIG

2ème LFIG

1ère LFIG

Fichier

2ème LFSG

1ère LFSG

1ère LFIG Enregistrement

Judy Champ ou attribut

01001010 byte (ASCII)

1 bit

Page 4: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Operations sur les fichiers

�La création d’un nouveau fichier

�Le déplacement vers un autre emplacement

�La création d’une copie

�Le remplacement par un autre fichier�Le remplacement par un autre fichier

�La lecture de son contenu

�L’écriture dans un fichier

�La suppression d’un fichier

4

Page 5: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

L’espace de noms System.IO

� Toutes Les classes abordées se situent dansl'espace de nom System.IO.

� Nous abordons précisément :

�La classe FileStream�La classe FileStream

�La classe StreamReader

�La classe StreamWriter

�La classe BinaryReader

�La classe BinaryWriter

Page 6: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

�La classe FileStream : permet de créer,d’ouvrir des fichiers et de préciser le typed’accès et le mode de manipulation de cesfichiers.

L’espace de noms System.IO

�La classe StreamReader : offre des méthodespermettant la lecture des flux des données àpartir d’un fichier texte.

�La classe StreamWriter : offre des méthodespermettant l’écriture des flux des donnéesdans un fichier texte.

6

Page 7: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

�La classe BinaryReader : présente desméthodes permettant la lecture de donnéesbinaires à partir d’un fichier binaire.

�La classe BinaryWriter : présente des

L’espace de noms System.IO

�La classe BinaryWriter : présente desméthodes permettant l’écriture de donnéesbinaires dans un fichier binaire.

�Un flux est un canal permettant l’accès à unobjet (dans notre cas l’objet est un fichier).

7

Page 8: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Lecture d’un fichier : les étapes

�Ouvrir un flux vers le fichier, en utilisant laclasse FileStream. Ceci permet de préciser lemode de manipulation via l’énumérationFileMode (créer ou ouvrir) et le type d’accèsvia l’énumération FileAccess (lecture ouvia l’énumération FileAccess (lecture oulecture/écriture),

�Associer un objet de lecture pour le flux viaStreamReader ou BinaryReader,

�Lecture du contenu du fichier,

�Fermeture du flux.

8

Page 9: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Écriture dans fichier : les étapes

�Ouvrir un flux vers le fichier, en utilisant de mêmela classe FileStream. Ceci permet de préciser lemode de manipulation (créer, ouvrir, Ajout,…) etle type d’accès (écriture ou lecture/écriture),

�Associer un objet d’écriture au flux via�Associer un objet d’écriture au flux viaStreamWriter ou BinaryWriter,

�Écriture dans le fichier,

�Forcer l’écriture dans le fichier via la méthodeflush(),

�Fermeture du flux.9

Page 10: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Exemple : Ajout à la suite d’un fichier

Dim fs As New FileStream("Ajout.txt", FileMode.Append, FileAccess.Write)

Dim sw As New StreamWriter(fs)

sw.WriteLine(TextBox1.Text & " "& sw.WriteLine(TextBox1.Text & " "& ComboBox1.SelectedItem.ToString & " " & TextBox2.Text & " " & CInt(ComboBox2.SelectedItem.ToString) & " " & TextBox3.Text)

sw.Flush() ‘Forcer l’ecriture du contenu du tampon

sw.Close()

fs.Close()

10

Page 11: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

�Cette classe donne la possibilité de lire, écrire,ouvrir et fermer des fichiers.

�Elle possède 9 constructeurs dont le plus utiliséest :

Création d’un fichier séquentiel : La Classe FileStream

est :

FileStream(String, FileMode, FileAccess)

�Le premier paramètre précise l’emplacementdu fichier.

�Le deuxième est une énumération donnant lemode d’utilisation

�Le troisième précise la permission.

Page 12: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

FileMode :C’est une énumération dont les valeurs possibles sont :�FileMode.Append: Si le fichier existe, les donnéessont alors ajoutés à la suite de celles existantes. Si lefichier n’existe pas il sera crée avant d’y ajouter lesdonnées.

Création d’un fichier séquentiel : La Classe FileStream

fichier n’existe pas il sera crée avant d’y ajouter lesdonnées.

�FileMode.Create: permet de créer un fichier. Si cedernier existe, il sera détruit et remplacer par unnouveau fichier de même nom.

�FileMode.CreateNew: permet de créer un fichier. Sice dernier existe, alors une erreur est retournée.

Page 13: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

�FileMode.Open: permet d’ouvrir un fichier. Sice dernier n’existe pas, alors une erreur estretournée.

�FileMode.OpenOrCreate: Si le fichier existe, ilsera ouvert sinon il sera crée.

Création d’un fichier séquentiel : La Classe FileStream

�FileMode.OpenOrCreate: Si le fichier existe, ilsera ouvert sinon il sera crée.

�FileMode.Truncate: permet de supprimer lecontenu fichier et de donner la possibilité d’yécrire de nouveau. Si ce dernier n’existe pas,alors une erreur est retournée.

13

Page 14: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

FileAccessUne énumération permettant de préciser le typed’accès au fichier dont les membres sont :

�FileAccess.Write: l’ajout de nouvelles donnéesest permis.

Création d’un fichier séquentiel : La Classe FileStream

est permis.

�FileAccess.Read: le contenu du fichier peutêtre lu.

�FileAccess.ReadWrite: lecture et écrituresimultanée.

Page 15: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

La classe StreamReader

1. Declarer un objet FileStream en passant le chemin d’accès au

fichier :

Dim fs As New FileStream("C:\Employee.txt", FileMode.Open, FileAccess.Read)

2. Créer un objet StreamReader en lui passant l’objet FileStreamdéjà crée :

Dim sr As New StreamReader(fs)Dim sr As New StreamReader(fs)3. Exemple: lecture du contenu du fichier et affectation de ses

lignes à un RichTextBox (rtBox)

While sr.Peek() > -1rtBox.Text &= sr.ReadLine()

End While4. Fermeture du fichier:

sr.Close() ‘fermeture du fichierfs.Close() ‘fermeture du flux

Page 16: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

�La classe StreamReader propose plusieursstratégies de lecture:

�Ligne par ligne � avec la méthode ReadLine.

La classe StreamReader

�Ligne par ligne � avec la méthode ReadLine.

�Le fichier en sa totalité � avec la méthodeReadToEnd.

�Caractère par caractère � avec la méthodeRead.

16

Page 17: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Ligne par ligne :

�La méthode ReadLine permet la lecture d’une ligne

d’un fichier texte.

La classe StreamReader

d’un fichier texte.

�La méthode Peek permet de dire si on a atteint la fin du fichier ou non.

�Peek retourne -1 si c’est la fin du fichier.

17

Page 18: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

�Tout Le Fichier :

On peut lire tout le contenu du fichier avec la méthodeReadToEnd.

Cette méthode retourne le contenu du fichier dés la positioncourante jusqu’à la fin du fichier.

La classe StreamReader

courante jusqu’à la fin du fichier.

�Caractère par caractère:Si on veut lire le fichier caractère par caractère, on utilise la méthode Read. Cette méthode retourne un entier représentant le code du caractère lu.

18

Page 19: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

� L’exemple ci-dessous lit le fichier caractère par caractère :

Dim x As IntegerDim ch As String

Dim fs As New FileStream("C:\Employee.txt", FileMode.Open, FileAccess.Read)

La classe StreamReader : Exemple

FileAccess.Read)

Dim sr As New StreamReader(fs) While sr.Peek <> -1

x = sr.Read()ch = Chr(x)

Console.write(ch)End While

19

Page 20: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

1. Declarer un objet FileStream en passant le chemin d’accès au

fichier :

Dim fs As New FileStream("file.txt", FileMode.Create, FileAccess.Write)

2. Créer un objet StreamReader en lui passant l’objet FileStream

déjà crée :

Dim sw As New StreamWriter(fs)

La classe StreamWriter

Dim sw As New StreamWriter(fs)3. Pour écrire dans le fichier, on peut utiliser les méthodes write et

writeLine:

sw.WriteLine(“Une première phrase.")sw.WriteLine(“Une deuxième phrase.")

4. Close the file

sr.Close() ‘fermeture du fichierfs.Close() ‘fermeture du flux

Page 21: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

La classe BinaryReader

�Cette classe permet de lire des donnéesbinaires ou des flux d’objets.

�Elle dispose d’un certains nombre deméthodes comme :

21

méthodes comme :

�ReadString : la lecture d’une chaine de caractères

�ReadBoolean : la lecture d’un Boolean

�ReadInt32 : La lecture d’un Integer

�ReadDouble : La lecture d’un réel

�…

Page 22: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Try

br = New BinaryReader(New FileStream("mydata", FileMode.Open))

i = br.ReadInt32()

Console.WriteLine("Donnée de type Integer : {0}", i)

d = br.ReadDouble()

Console.WriteLine("Donnée de type Double : {0}", d)

b = br.ReadBoolean()

La classe BinaryReader : Exemple

b = br.ReadBoolean()

Console.WriteLine("Donnée de type Boolean : {0}", b)

s = br.ReadString()

Console.WriteLine("Donnée de type String : {0}", s)

Catch e As IOException

Console.WriteLine(e.Message + vbCrlf+ " La lecture du fichier est impossible.")

End Try

br.Close()

22

Page 23: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

La classe BinaryWriter

�Cette classe permet l’écriture des donnéesbinaires ou des flux d’objets.

�Elle dispose d’un certains nombre de méthodescomme :

23

comme :

�Write : l’écriture des données dans le fichier.

�Seek : Permet de déplacer le curseur dans le fichier.

�Flush : vide le tampon dans le fichier binaire.

�Close : La fermeture du flux.

�…

Page 24: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

La classe BinaryWriter : Exemple

Dim wS As FileStream

Try

wS = New FileStream("c:\Exemple1.dat", FileMode.Create)

Dim wB As New BinaryWriter(wS)

For each x in lstBox1.Item

24

For each x in lstBox1.Item

wB.Write (x)

Next

wB.Close()

Catch ex As ExceptionMsgBox(ex.ToString)

End Try

Page 25: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Exemple DétailléExemple Détaillé

25

Page 26: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 27: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

Code SourceCode Source

27

Page 28: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 29: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 30: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 31: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 32: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 33: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 34: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point

TestsTests

34

Page 35: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 36: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point
Page 37: Chapitre n°4: Les Fichiers En VB - 2lfig.e-monsite.com2lfig.e-monsite.com/.../chapitre4.gestion.de.fichiers.en.vb.net.pdf · Introduction Dans ce chapitre, nous abordons un point