Sciences de l'informatique

Bienvenue dans notre forum de partage et d'échange d'information technique dans le domaine NTIC (Informatique, Programmation, Réseau, Multimédia), ce forum est destinée à tous les élèves Tunisiens
 
AccueilCalendrierFAQMembresGroupesS'enregistrerConnexion
Sujets similaires
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Derniers sujets
Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 6 le Ven 13 Jan - 2:22

Partagez | 
 

 Cours sur les fichiers

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Dhifallah Fethi
Admin
avatar

Messages : 74
Date d'inscription : 02/03/2011

MessageSujet: Cours sur les fichiers   Sam 26 Mar - 2:51

Cours sur les Fichiers

1. Déclaration

Pour utiliser un ou des fichiers tout au long d'un programme, il faudra l'identifier par une variable dont le type est fonction de l'utilisation que l'on veut faire du fichier. Il existe trois types de fichiers :

* Les fichiers textes (Text), qui sont écrits au format texte (chaînes de cractères, nombres) dans lesquels ont peut écrire et lire ligne par ligne ou à la file avec les procédures Write(Ln) et Read(Ln). Chaque fin de ligne du fichier se
termine par les caractères 10 et 13 de la table ASCII qui signifient respectivement retour chariot et passage à la ligne. Ces deux derniers caractères sont transparent au programmeur. On pourra donc y écrire ou y lire indifférament des chaînes ou des nombres, cela dépend du type que l'on affecte à la variable passée en paramètre aux procédures d'entrée/sorties (voir plus bas).
Note : S'il y a lieu de faire une convertion nombre/chaîne, le compilateur le fait tout seul, par contre si le type de la variable ne correspond pas avec la donnée lue dans le fichier et qu'aucune convertion n'est possible (exemple : WriteLn(f, x:Real); alors que le fichier ne contient que des lettres), alors cela produit une erreur.
Syntaxe :
Code:

Var f : Text ;

* Les fichiers typés (File Of), qui sont des fichiers écrits sur disque telles que les données se présentent en mémoire. C'est-à-dire que la taille du fichier résultera
directement et exactement de la taille en mémoire qu'occupe telle ou
telle variable. Cela accrue la vitesse d'accès aux données du fichiers.
Mais le plus grand avantage c'est que l'on obtient ainsi des fichiers
parfaitement formatés, c'est-à-dire qu'on peut y lire et écrire directement des variables de type structuré qui contiennent plusieurs champs de données ( voir chap Type) sans avoir à se soucier des divers champs qu'elles contiennent. Il va sans dire que ce type de fichier est préférable à tous les autres.
Syntaxe :
Code:

Var f : File Of type ;
Exemple :
Var f : File Of Integer ;

* Les fichiers tout court ! (File), qui sont des fichiers dont on ne connait pas le contenu. N'ayant aucune information sur la structure des données, n'ayant aucune convertion à faire, la lecture et son écriture en sont plus rapide. Mais sont
utilité est bien maigre : à part faire une simple copie d'un fichier dans un autre...
Syntaxe :
Code:
Var f : File ;

2. Lecture, écriture

Avant de travailler sur un fichier, il faut le déclarer en lui affectant une variable qui servira à désigner le fichier tout au long du programme.
Assign s'applique à tous les types de fichiers (Text, File Of et File).
Syntaxe :
Code:
Assign ( variable d'appel , nom du fichier ) ;

Ensuite, il faut renvoyer le pointeur au début du fichier pour pouvoir lire
(Text, File Of et File) ou écrire (File Of et File) à partir du début du fichier. Attention, on ne peut pas écrire sur un Text avec Reset !
Syntaxe :
Code:
Reset ( variable d'appel ) ;

Il est possible pour le type File uniquement, de spécifier la taille de chaque bloc de donnée lu ou écrit sur le fichier, en rajoutant en argument à Reset une variable (ou un nombre directement) de type Word (entier) spécifiant cette taille en octet. Cela nécessite de connaître la taille mémoire de chaque type de variables (voir chap IV "Différents types de variables"). Par exemple cette taille vaudra 6 si on veut lire
des nombres réels (Real) ou bien 256 pour des chaînes de caractères (String). Le fait que la variable taille soit de type Word implique que sa valeur doit être comprise entre 0 et 65535. Par défaut, taille=128 octets.
Syntaxe :
Code:
Reset ( variable d'appel, taille ) ;

Pour créer un fichier qui n'existe pas ou bien pour en effacer sont contenu,
on emploi ReWrite qui pemret d'effectuer des lectures (File Of et File) et écritures (Text, File Of et File). Attention, on ne peut pas lire sur un Text avec ReWrite !
Syntaxe :
Code:
Rewrite ( variable d'appel ) ;

Tout comme Reset, ReWrite permet de spécifier une taille aux échanges de
données sur un File seulement (aussi bien en écriture qu'en lecture).
Avec ReWrite c'est le cas ou le fichier n'existe pas encore alors qu'avec Reset c'est le cas ou il existe déjà.
Syntaxe :
Code:
Rewrite ( variable d'appel, taille) ;

Pour lire le contenu d'une ligne d'un fichier Text ouvert, on utilise la même instruction qui permet de lire la valeur d'une variable au clavier à savoir ReadLn. Sera alors lue, la ou les variable(s) correspondant au contenu de la ligne courante (celle pointée par le pointeur). Si la ou les variable(s) n'étai(en)t pas de taille suffisament grande pour contenir toutes les données de la ligne, alors l'exédent serait perdu.
Syntaxes :
Code:
ReadLn ( variable d'appel, variable ) ;
ReadLn ( variable d'appel, var1, var2, ... varN) ;

Pour écrire sur un fichier Text, il suffit d'employer la commande WriteLn.
Syntaxes :
Code:

WriteLn ( variable d'appel, variable ) ;
WriteLn ( variable d'appel, var1, var2, ... varN) ;

Les procédures Read et Write s'utilisent respectivement de la même manière
que ReadLn et WriteLn mais s'appliquent aux File Of aussi bien qu'aux
Text.

Pour lire et écrire sur un File, il faut utiliser les procédures BlockRead et BlockWrite.
Syntaxes :
Code:

BlockRead ( f, variable, nbr ) ;
BlockRead ( f, variable, nbr, result ) ;
BlockWrite ( f, variable, nbr ) ;
BlockWrite ( f, variable, nbr, result ) ;

BlockRead
lit sur le fichier f de type File une variable qui contiendra un nombre de bloc mémoire (dont la taille est définie par Reset ou ReWrite) égale à nbr. La variable facultative result prend pour valeur le nombre de bloc effectivement lu (car il peut y en avoir moins que prévu initialement).

BlockWrite écrit sur le fichier f de type File une variable sur un nombre de bloc mémoire égale à nbr. La variable facultative result prend pour valeur le nombre de bloc effectivement écrit (car il peut y en avoir plus à écrire que ne le permet
l'initialisation par Reset ou ReWrite). Dans le cas ou cette variable result est ommise et qu'il est impossible d'écrire autant de blocs que voulu, il est généré une erreur !

Note : Les variables nbr et result doivent être de type Word.

Il est impératif de fermer les fichiers ouverts pendant un programme Turbo
Pascal avant de terminer le programme sous peine de voir les données inscrites en son sein perdues.
Syntaxe :
Code:

Close ( variable d'appel ) ;

Il est possible de rappeler un fichier Text en cours de programme même s'il a déjà été refermé grâce à sa variable d'appel. Et alors la position courante du curseur sera à la fin du fichier. Ne fonctionne qu'en écriture et qu'avec un Text.
Syntaxe :
Code:
Append ( variable d'appel ) ;

La syntaxe Append est équivalente au bloc suivant :
Code:
Code:
Begin
Reset(variable d'appel) ;
Seek(variable d'appel, FileSize(variable d'appel)) ;
End ;

Code:

Program exemple12 ;
Uses crt, dos ;
Var f : text ;
nom : string ;
choix : char ;
Procedure lecture ;
Begin
Append (f) ;
Reset (f) ;
Readln (f, nom) ;
Writeln (nom) ;
End ;
BEGIN
Clrscr ;
Assign (f, 'init.txt') ;
Rewrite (f) ;
Write ('Entrez un nom d''utilisateur : ') ;
Readln (nom) ;
nom := 'Dernier utilisateur : ' + nom ;
Writeln (f, nom) ;
Close (f) ;
Write ('Voulez-vous lire le fichier init.txt ? [O/N] ') ;
Readln (choix) ;
If (choix='O') or (choix='o') then lecture ;
END.

Ce programme exemple12 illustre les principales commandes qui permettent
de travailler sur des fichiers de type texte. Ici, le programme réinitialise à chaque lancement le fichier init.txt et y inscrit une valeur entrée par l'utilisateur (son nom, en l'occurrence). Il permet également à l'utilisateur de lire le contenu du fichier (qui ne contient qu'une seule ligne de texte).


santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa jocolor santa
Revenir en haut Aller en bas
http://ntic.moontada.net
kaouther



Messages : 1
Date d'inscription : 05/03/2011
Age : 24

MessageSujet: Re: Cours sur les fichiers   Lun 2 Mai - 13:32

Smile Smile
Revenir en haut Aller en bas
 
Cours sur les fichiers
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cours de langue et de civilisation françaises, tome 3
» cours de biologie moléculaire
» Examens ST et solutions de MATH1
» حل مشكل أختفاء option de dossier + تفعيل الخاصية

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Sciences de l'informatique :: 4ème SI :: Programmation :: Cours-
Sauter vers: