La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Stockage de données. Présentation Le stockage des données dans les variables et tableaux est temporaire : –Nous avons vu la notion de durée de vie des.

Présentations similaires


Présentation au sujet: "Stockage de données. Présentation Le stockage des données dans les variables et tableaux est temporaire : –Nous avons vu la notion de durée de vie des."— Transcription de la présentation:

1 Stockage de données

2 Présentation Le stockage des données dans les variables et tableaux est temporaire : –Nous avons vu la notion de durée de vie des variables Les variables et donc les données sont détruites lorsque lon quitte lapplication. La mémoire est restituée au système dexploitation –Pour les données en entrée : elles sont soit recueillies manuellement soit assignées de manière statique dans le code (constantes) Il nous faut une solution permettant la (ré)utilisation des données dune exécution à lautre

3 Gestion de fichiers Les fichiers permettent la rétention permanente de larges quantités de données Les données contenues dans des fichiers sont dites permanentes Les fichiers sont stockés dans des unités périphériques : disques durs, disques et bande magnétiques, disques optiques,… Comme utilisateurs de Windows, vous êtes déjà familier avec la notion de fichier, leurs regroupements en répertoires et leur classification en arborescence (de fichiers).

4 Gestion de fichiers La norme pour les noms de fichiers sous windows (9x / 2000 / Me / XP/ 7) : –Composition : caractères alphanumériques (lettres, chiffres), tirets, trait de soulignement, espace –Maximum de 255 caractères –Extension facultative : un point et trois caractères (qui indiquent le type du fichier :.bas,.prw,.wav,.txt,.exe, …)

5 Gestion de fichiers Le nombre total de fichiers pouvant être ouverts par le système est limité (cela dépend du système, avec VB cest 255) Chaque fichier dispose dun numéro de canal (la fonction FreeFile permet de laisser au système le soin de définir ce numéro) Le travail sur les fichiers ce décompose en trois phases : 1.Ouverture 2.Traitement 3.Fermeture

6 Gestion de fichiers VB permet de lire et écrire toute sorte de fichiers (graphiques, sons, binaires, textes, données). On distingue les fichiers à accès séquentiel et les fichiers à accès aléatoire (ou accès direct). Il ne faut pas confondre les fichiers de code (exécutable ou sources) et les fichiers de données.

7 Fichiers à accès séquentiel Par simplification, pour les fichiers à accès séquentiel, nous ne nous intéresserons quà la gestion des fichiers texte (contenant des données textuelles). Un fichier à accès séquentiel est composé dune suite de lignes de texte séparé par un séparateur : un retour à la ligne (Chr(13)&Chr(10) ou CRLF) Carriage Return / Line Feed

8 Fichiers à accès séquentiel CRLF Judy Judy CRLF CR Fichier Enregistrement Chr(13)&Chr(10) Chaîne (String) Bit / Octet Enregistrement

9 Fichiers à accès séquentiel Syntaxe : Dim Canal As Integer déclaration du canal Canal = FreeFile initialisation du canal Open For As #Canal Traitement Close #Canal fermeture du fichier Où peut prendre trois valeurs : –Input : lecture seule –Output : accès en écriture, le fichier est vidé de son contenu préalable –Append : ajout non destructif, les données sont ajoutées à la fin du fichier

10 Fichiers à accès séquentiel Les différents traitements sont : –Line Input #, : fonction de lecture dune ligne de texte (ouvert en Input ) –Print #, : fonction décriture dans un fichier (ouvert en Output ou en Append ) EOF( ) (End Of File) : fonction booléenne de repérage de fin de fichier (une lecture au-delà de la fin de fichier est une erreur système)

11 Gestion de fichiers VB dispose dinstructions équivalentes à celles du DOS pour les répertoires : –Chdrive : change le lecteur courant –ChDir : change le répertoire courant –Curdir : retourne le nom du répertoire courant –Mkdir : crée le répertoire spécifié –Rmdir : détruit le répertoire (vide) spécifié Les arguments (en entrée comme en sortie) doivent être des chaînes de caractère : variables ( String ) ou valeurs (« »)

12 Gestion de fichiers VB dispose dinstructions équivalentes à celles du DOS pour les fichiers : –Dir(masque, attribut): retourne le nom du premier fichier correspondant au masque et possédant lattribut considéré –FileAttr, FileDate, File : retournent respectivement les attributs, la date de création et la longueur –FileCopy source, destination : copie le fichier source sous le nom destination –Kill : supprime le fichier indiqué (pas de corbeille) –Name As : renomme le fichier ancien en nouveau

13 Fichiers à accès séquentiel Exemple : Private Sub ExempleFile() Dim canal As Integer 'déclaration du canal Dim courante As String 'déclaration de la ligne courante canal = FreeFile 'initialisation du canal MsgBox(CurDir) 'affiche le répertoire courant ChDir "c:\test" 'change le répertoire courant MsgBox(CurDir) 'affiche le nouveau répertoire Open "test.txt" For Input As #canal'ouvre le fichier Do Until EOF(canal) 'tant que pas fini Line Input #canal, courante'lire la prochaine ligne MsgBox(courante)'l'afficher Loop 'fin de boucle Close #canal 'fermeture du fichier End Sub 'fin de procédure

14 Fichiers à accès direct /aléatoire Les fichiers à accès direct permettent un accès rapide à une donnée précise dans le fichier (doù leur(s) nom(s)). Les fichiers à accès direct sont structurés différemment (ce nest pas que le mode daccès qui change) : ils sont une collection denregistrements de même taille. On utilise un type utilisateur (Type)pour définir ces enregistrements (avec une contrainte de définition précise de la taille: String * X, tableaux de taille fixe, …)

15 Hiérarchie de données Judy Chaîne (String) Bit / Octet Enregistrement Fichier

16 Fichiers à accès direct / aléatoire Ouverture / crétation dun fichier à accès direct : Dim Canal1 As Integer déclaration du canal Canal1 = FreeFile initialisation du canal Open For Random [Access ] As #Canal1 Len=Len( ) Traitement des données Close #Canal fermeture du fichier Par défaut, les fichiers à accès direct sont ouverts en lecture et en écriture, mais on peut préciser : read, write, read write

17 Fichiers à accès direct / aléatoire Lecture des données, syntaxe : Get #Canal,, variable_réception –Get affecte les valeurs de lenregistrement numéro aux champs correspondants de variable_réception –Adresser un enregistrement du fichier qui nexiste pas est une erreur dynamique. –La fonction LOF(Canal) renvoie la taille du fichier en nombre doctets du fichier. –LOF(Canal)/Lenb(variable_réception) nous donne donc la taille du fichier en nombre denregistrements (pratique, mais peu sur).

18 Fichiers à accès direct / aléatoire Écriture des données, syntaxe : Put #Canal,, variable_réception –Put affecte les valeurs de lenregistrement variable_réception aux champs correspondants de lenregistrement numéro du fichier de canal Canal –EOF(Canal) renvoie vraie lorsque la fin du fichier est rencontrée

19 Fichiers à accès direct / aléatoire Exemple dutilisation : Private Type ClientRecord accountNumber As Integer lastName As String * 15 firstName As String * 15 balance As Currency End Type Sub Initialisation() procédure dinitialisation du fichier Dim BlankClient As ClientRecord ' type utilisateur Dim x as integer Open "c:\clients.rnd" For Random Access Write As #1 Len=Len(BlankClient) For x = 1 To 100 Put #1, x, udtBlankClient ' écrit 100 enregistrements Next Close #1 ' ferme le fichier End Sub

20 Exercices - Fichiers séquentiels - Écrire un programme qui : –Ouvre un répertoire Tests dans Mes documents (vous devez avoir déjà crée ce répertoire) –Y crée un fichier test.txt et y insère la liste des numéro, nom et prénom dau moins trois étudiants. –Ferme le fichier. Écrire un programme qui –Demande à lutilisateur le numéro de létudiant recherché, –Affiche toutes les informations sur cet étudiant Écrire un programme qui –Ouvre votre fichier précédemment créé –Affiche son contenu de manière « ergonomique » dans la feuille Feuil1.

21 Exercices - Fichiers à accès direct - On se propose décrire un programme permettant de gérer les commandes des différents clients. –Un client est défini par un numéro, un nom et une adresse. –Une commande est définie par un numéro, une date, le numéro du client qui a passé la commande et enfin par le numéro et la quantité du produit concerné. –Un produit est défini par un numéro, une désignation, un prix unitaire et un stock. Ecrire un programme qui : –Crée un répertoire Commandes –Dans ce répertoire, il crée trois fichiers : Clients.mie contenant la liste des clients. Commandes.mie contenant la liste des commandes. Produits.mie contenant la liste des produits. Une fois ces trois fichiers crées, votre programme demande à lutilisateur ce quil veut faire. Selon la réponse de lutilisateur, le programme applique le traitement demandé : –1 : lutilisateur pourra saisir un nouveau client –2 : il pourra saisir un nouveau produit –3 : il pourra saisir une nouvelle commande.


Télécharger ppt "Stockage de données. Présentation Le stockage des données dans les variables et tableaux est temporaire : –Nous avons vu la notion de durée de vie des."

Présentations similaires


Annonces Google