La gestion de fichiers séquentiels en Algorithmique

Effectuer du traitement d’informations avec la gestion de fichiers séquentiel en Algorithmique

Les informations que l’on pouvait traiter avec les différentes notions d’algorithmique que nous avons vu étaient considéré comme « volatile ». Cela veut dire que lors de la fermeture de votre script, les informations n’étaient pas conservées. Pour parer à cela on peut utiliser des fichiers séquentiels. Cela vous permet d’écrire, de lire, de modifier dans un fichier en dur vos informations.

1 gestion de fichiers en algorithmique

On distingue ainsi deux types de fichiers, les fichiers séquentiels et les fichiers texte. Les fichiers structurés permettent d’enregistrer des données de même nature. Ils composés d’enregistrements contenant eux mêmes des champs. Ainsi chaque enregistrement correspond à une ligne et les champs sont séparé par un séparateur. (Tabulation, point virgule…) Les fichiers non structurés (texte) permettent de stocker massivement des informations de natures différentes(chaine, entier, réel…) et à la différence ils ne sont pas structurés en ligne avec des champs.

Je vais donc aborder dans ce billet le traitement de fichiers séquentiels.

Dans mon exemple je vais mettre en place un algorithme avec une fonction me permettant de vérifier l’existence d’une chaine dans mon fichier séquentiel.

On va donc avoir la forme suivante:

– Un fichier MATIERES.txt composé de 3 lignes ( pour l’exemple)
nomMATIERES
MATHS
FRANCAIS
ALGO

Je vais maintenant créer ma fonction de vérification qui va me retourner un boolean m’indiquant si la matière à été trouvé dans mon fichier MATIERES.TXT

Fonction ExisteMatiere ( matière : Chaîne ) : Booléen
Variable m : Chaîne
Variable fic : FichierSéquentiel
Variable NomFichier : Chaîne
Variable Résultat : Booléen

Début
' Initialisation
  |  NomFichier <- "MATIERES.TXT"
  |  Résultat <- Faux
  |  
'
Traitement du fichier
  |  Ouvrir ( fic , NomFichier , Lecture )
  |  TantQue Non EOF ( fic ) Et Résultat = Faux Faire
  |    |  Lire ( fic , m )
  |    |  Si Maj ( matière ) = Maj ( m ) Alors
  |    |    |  Résultat <- Vrai
  |    |  FinSi
  |  FinTantQue
  |  Fermer ( fic )
  |  Retourner ( résultat )
Fin

On doit intégrer notre fonction dans notre code entier, cela nous ressort cet algorithme.

Variable matiere : Chaîne

Début
  |  matiere <- "ALGO"
  |  
  |  Si ExisteMatiere ( matiere ) = Vrai Alors
  |    |  Afficher ( "La matière à été trouvé dans le fichier MATIERES.TXT" )
  |  Sinon
  |    |  Afficher ( "La matière n'a pas été trouvé dans le fichier MATIERES.TXT" )
  |  FinSi
  |  
Fin

Fonction ExisteMatiere ( matière : Chaîne ) : Booléen
Variable m : Chaîne
Variable fic : FichierSéquentiel
Variable NomFichier : Chaîne
Variable Résultat : Booléen

Début
' Initialisation
  |  NomFichier <- "MATIERES.TXT"
  |  Résultat <- Faux
  |  
'
Traitement du fichier
  |  Ouvrir ( fic , NomFichier , Lecture )
  |  TantQue Non EOF ( fic ) Et Résultat = Faux Faire
  |    |  Lire ( fic , m )
  |    |  Si Maj ( matière ) = Maj ( m ) Alors
  |    |    |  Résultat <- Vrai
  |    |  FinSi
  |  FinTantQue
  |  Fermer ( fic )
  |  Retourner ( résultat )
Fin

On à maintenant notre code complet nous retournant un booleen, vous pouvez le compléter en y intégrant une demande de saisie de la part de l’utilisateur pour rechercher une matière.

Dans un prochain billet, je présenterai un traitement de fichier texte non séquentiel.

Laisser un commentaire