NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
-11%
Le deal à ne pas rater :
Smartphone 6.36 ” Xiaomi 14 (12 Go / 256 Go
641 € 719 €
Voir le deal

 

 X : Manipulation de fichiers

Aller en bas 
4 participants
AuteurMessage
hou$$am
Fondateur
Fondateur
hou$$am


Nombre de messages : 386
Localisation : Tlemcen-Algeria
Date d'inscription : 04/01/2007

X : Manipulation de fichiers Empty
MessageSujet: X : Manipulation de fichiers   X : Manipulation de fichiers Icon_minitimeMar 16 Jan - 4:59

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:
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).
Revenir en haut Aller en bas
fcboumi13

fcboumi13


Nombre de messages : 6
Localisation : Tlemcen-Algerie
Date d'inscription : 28/01/2007

X : Manipulation de fichiers Empty
MessageSujet: Re: X : Manipulation de fichiers   X : Manipulation de fichiers Icon_minitimeSam 3 Fév - 11:11

merci hou$$am
Revenir en haut Aller en bas
Admin
Fondateur
Fondateur
Admin


Nombre de messages : 197
Age : 40
Localisation : Tlemcen ( Algérie )
Date d'inscription : 04/12/2006

X : Manipulation de fichiers Empty
MessageSujet: Re: X : Manipulation de fichiers   X : Manipulation de fichiers Icon_minitimeLun 10 Sep - 10:23

Thank's Hou$$am ces tres important la manipulation des fichiers
Revenir en haut Aller en bas
https://neo-team.forumactif.com
sofian




Nombre de messages : 2
Date d'inscription : 20/05/2008

X : Manipulation de fichiers Empty
MessageSujet: Re: X : Manipulation de fichiers   X : Manipulation de fichiers Icon_minitimeSam 24 Mai - 2:52

merci ces trés inportant
Revenir en haut Aller en bas
Contenu sponsorisé





X : Manipulation de fichiers Empty
MessageSujet: Re: X : Manipulation de fichiers   X : Manipulation de fichiers Icon_minitime

Revenir en haut Aller en bas
 
X : Manipulation de fichiers
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Format de Fichiers Graphiques
» Comment ouvrir plusieurs fichiers avec une OpenDialog

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Languages de programmation :: Turbo Pascal-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser