Les fichiers 1ère partie Benoit Maynard IUT A Lyon
Introduction Jusqu’à maintenant les informations ne pouvaient provenir que de deux sources : De l’algorithme lui-même. Entrée par l’utilisateur au cours de l’exécution du programme. Problème : Comment sauvegarder des informations entre deux exécution d’un programme ? Solution : Les fichiers : Ils servent à stocker des informations de manière permanente. Ils sont placés sur un périphérique de stockage de masse (Disque dure, CD-ROM…) contrairement aux variables qui sont stocké en mémoire vive. Benoit Maynard IUT A Lyon
Organisation des fichiers 2 Types de fichiers : Fichier texte Organisés sous forme de lignes successives contenant le chacune le même genre d’information. On parle alors d’enregistrements. Chaque enregistrement se termine par les caractère CR (13 en ACSII) et LF (10 en ACSII). Utilisé pour stocké des informations assimilées à une base de données. Contient uniquement des données de type caractères. Fichier binaire Ne possède pas de structure en ligne. Octets écrits les uns à la suite des autres. Utilisé pour stocker tout type de données : texte, images, vidéos… Benoit Maynard IUT A Lyon
Structure des enregistrements 2 Type de structure pour les enregistrements pour les fichier texte : La structure délimité. La structure « Champs de largeur fixe » Benoit Maynard IUT A Lyon
Structure délimitée Un caractère spécial (dit de délimitation) permet de définir quand finit un champs et quand commence le suivant. Avantage : Faible encombrement en mémoire Inconvénient : Lenteur de lecture Exemple de Structure délimitée : Fonfec;Sophie;0142156487;fonfec@yahoo.fr Zétofrais;Mélanie;0456912347;zétofrais@free.fr Herbien;Jean-Philippe;0289765194;vantard@free.fr Hergébel;Octave;0149875231;rg@aol.fr Benoit Maynard IUT A Lyon
La structure « Champs de largeur fixe » Les données occupent un champs de taille fixe définit à l’avance. Il n’y a pas de caractère de délimitation Avantage : Récupération des champs très rapide Inconvénient : Gaspille de la place mémoire Exemple de structure à champs de largeur fixe : Fonfec Sophie 0142156487 fonfec@yahoo.fr Zétofrais Mélanie 0456912347 zétofrais@free.fr Herbien Jean-Philippe 0289765194 vantard@free.fr Hergébel Octave 0149875231 rg@aol.fr Benoit Maynard IUT A Lyon
Type d’accès C’est la manière dont la machine va pouvoir aller rechercher les informations contenus dans le fichier. 3 type d’accès : L’accès séquentiel : on lit le fichier ligne par ligne. (jusqu’à la fin du fichier même si trouvé avant) L’accès direct ou aléatoire : on accède directement à l’enregistrement de son choix par son numéro. L’accès indexé : on combine des deux accès précédant. Benoit Maynard IUT A Lyon
Instruction : Ouverture Nécessite l’attribution d’un numéro de canal (1 par fichier à ouvrir). Nécessite un mode d’ouverture : Pour lecture : on peut récupérer les informations mais pas les modifier Pour écriture : On peut mettre dans le fichier toutes les information de notre choix sachant que les données déjà présentes seront écrasés. Pour ajout : On peut ajouter de nouveaux enregistrement. Aucune lecture ni modification possible. (ajout à la fin) Instruction : Ouvrir <NomFichier> sur <Canal> en <Mode> Exemple : Ouvrir "Exemple.txt" sur 4 en Lecture Benoit Maynard IUT A Lyon
Instruction : Lecture Instruction : LireFichier <Canal> , <Variable> On récupère grâce à cette instruction l’enregistrement en cours de lecture dans un fichier qui est ouvert sur le canal spécifié. Ce contenu est stocké dans un variable ou un tableau et extrait à l’aide de la fonction Mid. (et passe à l’enregistrement suivant) Mid(<Variable>, <NumeroCarDébut>, <NbCar>) Fonction alphanumérique extrait une chaine depuis un caractère de début une autre chaine d’une certaine longueur. Pour parcourir un fichier on utilise une boucle en testant comme condition de fin la position par rapport à la fin du fichier (Fonction EOF : End Of File). EOF(<Canal>) Fonction booléenne permettant de savoir si on se trouve à la fin du fichier ouvert sur le canal spécifié. Benoit Maynard IUT A Lyon
Instruction : Fermeture Fermer <Canal> On ferme un canal ouvert. Variable Truc en Caractère Début Ouvrir "Exemple.txt" sur 5 en Lecture Tantque Non EOF(5) … LireFichier 5, Truc FinTantQue Fermer 5 Fin Benoit Maynard IUT A Lyon
Instruction : Lecture [Exemple] Fichier à lire : Fonfec Sophie 0142156487 fonfec@yahoo.fr Zétofrais Mélanie 0456912347 zétofrais@free.fr Herbien Jean-Philippe 0289765194 vantard@free.fr Hergébel Octave 0149875231 rg@aol.fr Tableaux Nom(), Prénom(), Tel(), Mail() en chaine Variable Truc en chaine Variable i en entier Début Ouvrir "Exemple.txt" sur 5 en Lecture i ← -1 Tantque Non EOF(5) LireFichier 5, Truc i ← i + 1 Redim Nom(i) Redim Prénom(i) Redim Tel(i) Redim Mail(i) Nom(i) ← Mid(Truc, 1, 20) Prénom(i) ← Mid(Truc, 21, 15) Tel(i) ← Mid(Truc, 36, 10) Mail(i) ← Mid(Truc, 46, 20) FinTantQue Fermer 5 Fin Benoit Maynard IUT A Lyon
Instruction : Ecriture ou Ajout EcrireFichier <Canal> , <Variable> On écrit dans un fichier ouvert sur un canal pour ajout ou pour écriture le contenu d’une variable. Variable Truc en Caractère Variable Nom en Caractère*20 Variable Prénom en Caractère*15 Variable Tel en Caractère*10 Variable Mail en Caractère*20 Début Ouvrir "Exemple.txt" sur 3 en Ajout Nom ← "Jokers" Prénom ← "Midnight" Tel ← "0348946532" Mail ← "allstars@rockandroll.com" Truc ← Nom & Prénom & Tel & Mail EcrireFichier 3, Truc Fermer 3 Fin Benoit Maynard IUT A Lyon