Ouvrir "passwd" dans fic en Ajout
Ecrire(fic,maligne)
Fermer fic
/* Relecture */
Ouvrir "passwd" dans fic en Lecture
Lire(fic,recup)
Fermer fic
/* On Obtient la même chose */
Afficher recup.login
Afficher recup.uid
...
Fin
Dans le même ordre d’idée, vous pouvez parfaitement utiliser un tableau d’enregistrements pour lire tout le fichier et
placer tous les enregistrements en mémoire.
Programme litout
Var
lignes :tableau[1..50] de enrpwd
fic :fichier séquentiel
i :entier
Début
i←1
Ouvrir "passwd" dans fic en Lecture
Tant que NON EOF(fic) Faire
Lire(fic,lignes[i])
i←i+1
FinTantQue
Fermer fic
Fin
4. Exemple en Java
Java sait manipuler les types de fichiers binaires ou texte, séquentiels ou en accès direct. Ce n’est pas très compliqué
mais cela fait appel au même principe que la saisie au clavier, avec une gestion des exceptions lors de l’ouverture,
l’accès et la fermeture du fichier, et aussi pour parer aux éventuelles erreurs de lecture/écriture.
Le programme Java suivant est un exemple de lecture et de réécriture d’enregistrements avec délimiteurs, comme le
fichier des utilisateurs d’Unix. Il fait :
q Ouverture du fichier en lecture.
q Lecture de chaque ligne.
q Chaque ligne est placée dans un tableau à deux dimensions : la première est la ligne, la seconde les champs
découpés via la méthode split().
q Une place est réservée pour d’éventuels traitements sur les enregistrements.
q Ouverture du fichier de sortie en écriture.
q Recomposition de toutes les lignes via une fonction recolle() prenant en paramètre un tableau de chaînes et le
délimiteur.
q Ecriture de la ligne reconstruite dans le fichier, avec un retour chariot.
En l’état le programme ne fait qu’une simple copie. À vous de créer les éventuels traitements entre la lecture et
l’écriture. Aussi, les lignes sont placées dans un tableau de taille fixe. Peutêtre seraitil plus avantageux d’utiliser des
listes chaînées, comme expliqué dans le prochain chapitre.
Les instructions de déclaration, d’ouverture, lecture, écriture et fermeture sont placées en gras.
import java.io.*;
- 6 -
© ENI Editions - All rigths reserved - Jonifar lina
160
Ecrire(fic,maligne)
Fermer fic
/* Relecture */
Ouvrir "passwd" dans fic en Lecture
Lire(fic,recup)
Fermer fic
/* On Obtient la même chose */
Afficher recup.login
Afficher recup.uid
...
Fin
Dans le même ordre d’idée, vous pouvez parfaitement utiliser un tableau d’enregistrements pour lire tout le fichier et
placer tous les enregistrements en mémoire.
Programme litout
Var
lignes :tableau[1..50] de enrpwd
fic :fichier séquentiel
i :entier
Début
i←1
Ouvrir "passwd" dans fic en Lecture
Tant que NON EOF(fic) Faire
Lire(fic,lignes[i])
i←i+1
FinTantQue
Fermer fic
Fin
4. Exemple en Java
Java sait manipuler les types de fichiers binaires ou texte, séquentiels ou en accès direct. Ce n’est pas très compliqué
mais cela fait appel au même principe que la saisie au clavier, avec une gestion des exceptions lors de l’ouverture,
l’accès et la fermeture du fichier, et aussi pour parer aux éventuelles erreurs de lecture/écriture.
Le programme Java suivant est un exemple de lecture et de réécriture d’enregistrements avec délimiteurs, comme le
fichier des utilisateurs d’Unix. Il fait :
q Ouverture du fichier en lecture.
q Lecture de chaque ligne.
q Chaque ligne est placée dans un tableau à deux dimensions : la première est la ligne, la seconde les champs
découpés via la méthode split().
q Une place est réservée pour d’éventuels traitements sur les enregistrements.
q Ouverture du fichier de sortie en écriture.
q Recomposition de toutes les lignes via une fonction recolle() prenant en paramètre un tableau de chaînes et le
délimiteur.
q Ecriture de la ligne reconstruite dans le fichier, avec un retour chariot.
En l’état le programme ne fait qu’une simple copie. À vous de créer les éventuels traitements entre la lecture et
l’écriture. Aussi, les lignes sont placées dans un tableau de taille fixe. Peutêtre seraitil plus avantageux d’utiliser des
listes chaînées, comme expliqué dans le prochain chapitre.
Les instructions de déclaration, d’ouverture, lecture, écriture et fermeture sont placées en gras.
import java.io.*;
- 6 -
© ENI Editions - All rigths reserved - Jonifar lina
160
