Gestion Fichier (Acces Aléatoire)
Page 1 sur 1 • Partagez
Gestion Fichier (Acces Aléatoire)
‘déclaration de la structure constituant un enregistrement dans le fichier
Dim FileNum As Integer, RecLength As Long
Dim last
Dim stag As sstag 'déclaration d’une variable de type sstag
'ajout d’un enregistrement dans le fichier:
' Calcul de la longueur de l'enregistrement
RecLength = Len(stag) 'ici =44 (4+20+20) '4= c'est la taille d'un 'Integer en octets
' Récupérer le premier numéro de fichier libre :
FileNum = FreeFile()
' Ouvrir le fichier :
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.Write, , RecLength)
stag.mat = 4
'ou si depuis une zone de texte : stag.mat = txtmat.text
stag.nom = "kamali"
stag.Ville = "casa"
Dim last As Long 'noter que le numéro d'enregistrement est un long
'Pour connaître le nombre d'enregistrement, il faut diviser la longueur du fichier par la longueur
d'un enregistrement :
last = FileLen("c:\stag.DAT") / RecLength
'la fonction FileLen donne la taille d’un fichier en octets
'On ajoute 1 pour créer un nouvel enregistrement.
FilePut(FileNum, stag, last + 1)
'fermeture:
FileClose(FileNum)
‘lecture :
FileNum = FreeFile()
' Ouvrir le fichier :
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.Read, , RecLength)
'Pour lire un enregistrement (le premier par exemple):
FileGet(FileNum, stag, 1)
FileGet(FileNum, stag, 1)
MsgBox(stag.nom)
‘Affichage de l’enregistrement lu :
Msgbox stag.mat & « - « & stag.nom & « - « & stag.ville
‘ou dans des zones de texte ou labels
'fermeture:
FileClose(FileNum)
‘lecture sequentielle du fichier et affichage dans une datagridview:
‘avec gestion des exceptions :
FileNum = FreeFile()
' Ouvrir le fichier.
RecLength = Len(stag)
Try
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.Read, , RecLength)
With datagridview1.rows
.Clear() ‘effacer la gride
For i = 1 To last ‘du premier jusqu’au dernier enregistrement
FileGet(FileNum, stag, )
'ou FileGet(FileNum, stag,i )
. Add(stag.mat , stag.nom, stag.ville)
Next
End with
‘autre façon de faire la boucle:
While Not EOF(1) ‘tant que ce n’est pas la fin de fichier faire:
FileGet(FileNum, stag, )
.Add(stag.mat , stag.nom, stag.ville)
End While
'fermeture:
FileClose(FileNum)
Catch ex As IO.DirectoryNotFoundException
MsgBox("Répertoire invalide")
Catch ex As IO.FileNotFoundException
MsgBox("Fichier invalide")
Catch ex As Exception
MsgBox(ex.Message)
End Try
‘modification d’un enregistrement:
FileNum = FreeFile()
‘ouverture en mode lecture/ecriture:
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.ReadWrite, , RecLength)
‘ se positionner sur l’enregistrement à modifier avec FileGet (ici le 2 ème enregistrement)
FileGet(FileNum, stag, 2)
‘affecter les nouvelles valeurs :
'ou si depuis une zone de texte : stag.mat = txtmat.text
stag.nom = "Fadili"
stag.Ville = "taza"
‘on ecrit les données dans le fichier :
FilePut(FileNum, stag, 2)
'fermeture:
FileClose(FileNum)
- Code:
Structure sstag
Dim mat As Integer
<VBFixedString(20)> Dim nom As String
<VBFixedString(20)> Dim Ville As String
End Structure
Dim FileNum As Integer, RecLength As Long
Dim last
Dim stag As sstag 'déclaration d’une variable de type sstag
'ajout d’un enregistrement dans le fichier:
' Calcul de la longueur de l'enregistrement
RecLength = Len(stag) 'ici =44 (4+20+20) '4= c'est la taille d'un 'Integer en octets
' Récupérer le premier numéro de fichier libre :
FileNum = FreeFile()
' Ouvrir le fichier :
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.Write, , RecLength)
stag.mat = 4
'ou si depuis une zone de texte : stag.mat = txtmat.text
stag.nom = "kamali"
stag.Ville = "casa"
Dim last As Long 'noter que le numéro d'enregistrement est un long
'Pour connaître le nombre d'enregistrement, il faut diviser la longueur du fichier par la longueur
d'un enregistrement :
last = FileLen("c:\stag.DAT") / RecLength
'la fonction FileLen donne la taille d’un fichier en octets
'On ajoute 1 pour créer un nouvel enregistrement.
FilePut(FileNum, stag, last + 1)
'fermeture:
FileClose(FileNum)
‘lecture :
FileNum = FreeFile()
' Ouvrir le fichier :
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.Read, , RecLength)
'Pour lire un enregistrement (le premier par exemple):
FileGet(FileNum, stag, 1)
FileGet(FileNum, stag, 1)
MsgBox(stag.nom)
‘Affichage de l’enregistrement lu :
Msgbox stag.mat & « - « & stag.nom & « - « & stag.ville
‘ou dans des zones de texte ou labels
'fermeture:
FileClose(FileNum)
‘lecture sequentielle du fichier et affichage dans une datagridview:
‘avec gestion des exceptions :
FileNum = FreeFile()
' Ouvrir le fichier.
RecLength = Len(stag)
Try
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.Read, , RecLength)
With datagridview1.rows
.Clear() ‘effacer la gride
For i = 1 To last ‘du premier jusqu’au dernier enregistrement
FileGet(FileNum, stag, )
'ou FileGet(FileNum, stag,i )
. Add(stag.mat , stag.nom, stag.ville)
Next
End with
‘autre façon de faire la boucle:
While Not EOF(1) ‘tant que ce n’est pas la fin de fichier faire:
FileGet(FileNum, stag, )
.Add(stag.mat , stag.nom, stag.ville)
End While
'fermeture:
FileClose(FileNum)
Catch ex As IO.DirectoryNotFoundException
MsgBox("Répertoire invalide")
Catch ex As IO.FileNotFoundException
MsgBox("Fichier invalide")
Catch ex As Exception
MsgBox(ex.Message)
End Try
‘modification d’un enregistrement:
FileNum = FreeFile()
‘ouverture en mode lecture/ecriture:
FileOpen(FileNum, "c:\stag.DAT", OpenMode.Random, OpenAccess.ReadWrite, , RecLength)
‘ se positionner sur l’enregistrement à modifier avec FileGet (ici le 2 ème enregistrement)
FileGet(FileNum, stag, 2)
‘affecter les nouvelles valeurs :
'ou si depuis une zone de texte : stag.mat = txtmat.text
stag.nom = "Fadili"
stag.Ville = "taza"
‘on ecrit les données dans le fichier :
FilePut(FileNum, stag, 2)
'fermeture:
FileClose(FileNum)
Mr.Hicham-
- Nombre de messages : 464
Date d'inscription : 25/05/2010
Sujets similaires
» ArrayaList , Fichier , Classes, Structure ---> 5 TP
» Les fichier normal en VB
» Rapport de stage : La gestion des connaissances en entreprise -option : contrôle de gestion- à SIEMENS
» Vous Pouvez Nous Donner Les Cours des Fichier Séquentielle et direct ou niveaux de VB
» Rapport de stage : Le contrôle de Gestion bancaire -Tableau du bord de gestion au balanced scorecard-
» Les fichier normal en VB
» Rapport de stage : La gestion des connaissances en entreprise -option : contrôle de gestion- à SIEMENS
» Vous Pouvez Nous Donner Les Cours des Fichier Séquentielle et direct ou niveaux de VB
» Rapport de stage : Le contrôle de Gestion bancaire -Tableau du bord de gestion au balanced scorecard-
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ven Nov 16, 2018 6:14 pm par tri2b
» Examen de fin de formation Théorique 2018 TDM
Mar Juin 19, 2018 8:08 pm par Mr.Ayoub
» Examen de Passage Chef Chantier TP 2010 Pratique
Lun Juin 04, 2018 11:07 am par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2012 Théorique
Dim Juin 03, 2018 3:59 pm par Mr.Ayoub
» Examen de fin de formation TSGO 2016 Pratique Variante 1
Dim Juin 03, 2018 3:36 pm par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2008 Théorique
Dim Juin 03, 2018 3:25 pm par Mr.Ayoub
» Examen de Passage Chef de Chantier T.P 2008 Théorique et Pratique
Dim Juin 03, 2018 3:24 pm par Mr.Ayoub
» Examen de Fin de Formation Gestion des Entreprises TSGE 2015
Mar Mai 29, 2018 12:18 pm par Mr.Ayoub
» Examen de Passage 2015 Gestion des Entreprises TSGE
Mar Mai 29, 2018 11:55 am par Mr.Ayoub
» Examen de Passage Gestion des Entreprises TSGE 2017
Mar Mai 29, 2018 11:51 am par Mr.Ayoub