Introduction :
Jusqu’à présent, les informations utilisées dans nos algorithmes provient de deux sources :
1- soit elles étaient inclues dans l’algorithme lui-même.
2- soit elles étaient saisit par l’utilisateur
Les fichiers peuvent être un support permanent des données?!
Définition:
Les fichiers servent à stocker des informations de manière permanente, entre deux exécutions d’un programme. En effet, si les variables, qui sont des adresses de mémoire vive, disparaissent à chaque fin d’exécution, les fichiers, eux sont stockés sur des périphériques à mémoire de masse (disquette, disque dur, CD Rom…].
Organisation des fichiers :
Il existe deux catégories de fichiers : les fichiers binaires et fichiers textes
Exemple: Prenons le cas d’un carnet d’adresses. Le fichier est destiné à mémoriser les coordonnées d’un certain nombre de personnes. Pour chacune, il faudra noter le nom, le prénom, le numéro de téléphone et l’email. Dans ce cas, il peut paraître plus simple de stocker une personne par ligne du fichier (par enregistrement]. Dit autrement, quand on prendra une ligne, on sera sûr qu’elle contient les informations concernant une personne, et uniquement cela.
Un fichier ainsi codé sous forme d’enregistrements est appelé un fichier texte
Types d'accès aux fichiers:
Définition: Le type d’accès c’est la manière dont la machine va pouvoir aller rechercher les informations contenues dans le fichier. On distingue :
1- L’accès séquentiel :
On ne peut accéder qu’à la donnée suivant celle qu’on vient de lire. On ne peut donc accéder à une information qu’en ayant au préalable examiné celle qui la précède. Dans le cas d’un fichier texte, cela signifie qu’on lit le fichier ligne par ligne (enregistrement par enregistrement).
2- L’accès direct (ou aléatoire) :
On peut accéder directement à l’enregistrement de son choix, en précisant le numéro de cet enregistrement. Mais cela veut souvent dire une gestion fastidieuse des déplacements dans le fichier.
Tout fichier peut être utilisé avec l’un ou l’autre des types d’accès. Le choix du type d’accès n’est pas un choix qui concerne le fichier lui-même, mais uniquement la manière dont il va être traité par la machine. C’est donc dans le programme, et seulement dans le programme, que l’on choisit le type d’accès souhaité
Résumé (Fichiers Texte) :
- On les utilise pour stocker : des bases de données
- structurés sous forme de
lignes (enregistrements) - Les données y sont écrites: exclusivement en tant que caractères.
- Les enregistrements sont eux-mêmes structurés : au choix, avec un séparateur ou en champs de largeur fixe.
- Lisibilité: Le fichier est lisible clairement avec n’importe quel éditeur de texte
- Lecture du fichier : On ne peut lire le fichier que ligne par ligne
Résumé (Fichier binaire) :
- On les utilise pour stocker : Tout, y compris des bases de données.
- n’ont pas de structure apparente. Ce sont des octets écrits à la suite les uns des autres.
- Les données y sont écrites : : comme en mémoire vive.
- Les enregistrements sont eux-mêmes structurés : en champs de largeur fixe, s’il s’agit d’un fichier codant des enregistrements
- Lisibilité : Le fichier a l’apparence d’une suite d’octets illisibles
- Lecture du fichier: On peut lire les octets de son choix (y compris la totalité du fichier d’un coup)
Utilisation des fichiers
Dans le cadre de ce cours, on se limitera au type: fichier texte en accès séquentiel.
1-Ouverture:
Lors de l’ouverture du fichier il faut préciser pour quelle opération celui-ci sera utilisé: Entrée, Sortie ou Ajout. On indiquera aussi par un n° le buffer qui sera la représentation du fichier en mémoire.
Syntaxe : OUVRIR “NomFichier” sur numCanal : mode |
Où :
– NomFichier : c’est le nom du fichier sur le disque dur.
– numCanal : numéro de canal
– mode : mode d’ouverture. Il existe trois modes d’ouverture
- LECTURE : la lecture (lire du fichier)
- ECRITURE : l’écriture (écrire au début du fichier)
- AJOUT : l’ajout (écrire à la fin du fichier)
Exemple :
OUVRIR ‘data.txt’ sur 4 :Lecture
OUVRIR ‘data.txt’ sur 4 : Ecriture
OUVRIR ‘data.txt’ sur 4 : Ajout
Remarques:
1- On peut donner le chemin du fichier.
Exemple: OUVRIR ‘E:\COMPTA\fich1.csv’ POUR LECTURE COMME #1
2- Le N° de canal doit être unique. Ainsi, si plusieurs fichiers doivent être manipulés par le même programme, choisissez des références différentes.
3- Dans un fichier ouvert pour ajout, les enregistrements seront stockés à la fin du fichier. 4- Dans un fichier ouvert pour Ecriture, les enregistrements seront écrit au début du fichier.
2- Lecture d’un fichier
Syntaxe :
LireFichier numCanal, nomVariable
L’instruction LireFichier récupère dans la variable spécifiée l’enregistrement suivant dans le fichier (“suivant”, par rapport au dernier enregistrement lu): C’est en cela que le fichier est dit séquentiel. Lire un fichier séquentiel de bout en bout suppose de programmer une boucle. Si l’on veut stocker au fur et à mesure en mémoire vive les informations lues dans le fichier, on a recours à des tableaux.
Exemple:
Variables ch : chaine
Début
OUVRIR ‘data.txt’ sur 4 : Lecture
LireFichier 4, ch
….
Fin
3- Ecriture dans un fichier
Syntaxe :
EcrireFichier numCanal, nomVariable
numCanal : numéro désignant le fichier
nomVariable : nom de la variable contenant la valeur à écrire dans le fichier.
Exemple :
Variables ch : chaine
Début
OUVRIR ” data.txt ” sur 4 :ecriture
Ecriture ch ß ” Bonjour “
EcrireFichier 4, ch
Fin
4- Fermeture du fichier
Une fois qu’on en a terminé avec un fichier, il ne faut pas oublier de fermer ce fichier. On libère ainsi le canal qu’il occupait (et accessoirement, on pourra utiliser ce canal dans la suite du programme pour un autre fichier ou pour le même).
Syntaxe :
Fermer ( numCanal )
numCanal : numéro désignant le fichier.
5- Fin de fichiers:
Comme on sait rarement à l’avance combien d’enregistrements comporte le fichier, on utilise alors la fonction EOF (acronyme pour End Of File). Cette fonction renvoie la valeur Vrai si on a atteint la fin du fichier.
Syntaxe :
EOF( numCanal )
Exemple :
Variable ligne : chaîne de caractères
Ouvrir “data.txt” sur 5 : Lecture
Tant que Non EOF(5)
LireFichier 5,ligne
…
Fin TQ
6- Insérer/ Modifier/ Supprimer un enregistrement :
Vu qu’un fichier ne peut être ouvert que dans l’un des modes d’ouverture déjà cités, donc pour modifier son contenu il faut passer par un fichier intermédiaire où on va copier le contenu du fichier original en le modifiant et puis on supprime ce fichier et on renomme le fichier intermédiaire.
Pour supprimer un fichier on utilise une fonction supprimer :
supprimer (NomFichier)
Pour renommer un fichier on utilise une fonction renommer : renommer(AncienNom, NouvNom)
Exercice:
On souhaite sauvegarder et gérer des noms dans un fichier. Ainsi, Ecrire les algorithmes qui permettent de : (Utiliser un menu)
1- Ecrire des Noms dans un fichier
2- Afficher le contenu du fichier
3- Afficher le contenu par ordre lexicographique
4- Supprimer un nom du fichier
Vous pouvez suivre notre liste des vidéos sur l’algorithmique sur notre chaine youtube 9raytifclick (Darija: arabe marocaine) : Cours sur les algorithmes.
Aussi, si vous voulez commencer l’apprentissage d’un langage de programmation, voilà notre cours : Langage Python Niveau 1 qui sera très utile pour vous (il vous aide à pratiquer tous les éléments vu dans notre cours d’algorithmique).
Bonjour ,j’espère que vous allez bien .
Je vous remercie pour vos efforts pour aider le étudiants et les stagiaires dans leur cursus universitaire.
Ce que je voudrais vous demander si c’est possible, est de rendre les cours et les exercices sous formes de fichier et poser le lien depuis ce site dans le vidéo de correction pour éviter de toujours revenir à la vidéo et juste revoir le fichier.
Merci d’avance
nous proposons nos cours, exercices dans le site. Meme , on ajoute les vidéos de l’explication dans chaque partie du cours.
Pour les examens, on les propose dans le site et on vous laisse un bouton ‘Télécharger’ pour télécharger le pdf d’examen