لو لم أكن معموري لتمنيت أن أكون معموري
 
الرئيسيةالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 COUR FICHIER

اذهب الى الأسفل 
كاتب الموضوعرسالة
marouene

avatar

عدد الرسائل : 155
العمر : 30
الوصف الشخصى : sqw
تعيين الادارة :
تاريخ التسجيل : 29/10/2008

مُساهمةموضوع: COUR FICHIER   السبت 1 نوفمبر - 0:51

Les fichiers:
-I- Introduction:
Lors de l'exécution d'un programme. Les données seront stockées en mémoire principale. Donc ces données seront volatiles et non persistantes d’où la nécessite d'un moyen de stockage permanent (disque dur disquette…) Ces considération nous amènent à introduire la notion de fichiers.
Un fichier permet d'enregistrer des données sur un support physique permanant.
-II- organisation des fichiers:
In fichier informatique est organisé en enregistrements (ensemble d'information ou encore bloc de données).la façon selon laquelle ces enregistrements son organisés dans le fichier détermine le type de l'organisation:
Organisation séquentielle:nous ne pouvons accéder aux enregistrements qu'en les parcourant les uns à la suite des autres.
Organisation relative:les enregistrements sont contigus et identifiés par un numéro d'ordre relatif au début du fichier.
-III- Méthode d'accès aux données:
Les méthodes par lesquelles on lit où on écrit un enregistrement d'un fichier sont appelées les méthodes d'accès. La méthode d'accès que l'on veut utiliser doit être spécifiée au moment* par des méthodes différents selon par organisation qu'elle à été définit ou moment de sa création:
Accès séquentiel:pour lire une information particulière, il faut lire toutes les informations situées avant.
Accès direct:nous pouvons accéder directement à l'information désignée par son numéro d'ordre.
-IV- les fichiers à accès séquentiel:
-1- déclaration:
En algorithmique:

TDNT

Type
Nom_fichier =fichier de type_composants

TDO

Objet Type/nature Rôle
Nom_logique Nom_fichier Fichier pour …

Remarque:
On désigne par le mot "logique" une variable utilisée seulement dans le programme appelée aussi nom_interne.
En pascal:
Type
Nom_fichier = file of type_composants ;
Var
Nom_logique : nom_fichier ;
Exemple:
Type
Patient = record
Num: integer ;
Nom_pr: string [30];
Age: byte;
End;
Fichier_patient = file of patient;
Var
Fp : fichier_patient ;
-2-traitement sur les fichiers:
-a- étape 1 : association (à l’assignation):
Un fichier doit avoir deux noms: un nom logique (appelé encore nom interne) qui servira à désigner le fichier tout le long du programme et nom physique (appelé aussi nom externe) qui servira à la représenter sur le support de stockage. La commande associer (assign en pascal) permet d'établir une correspondance entre ces deux noms.
Syntaxe :


En analyse et en algorithmique En pascal
Associer (nom_logique,"nom_physique")
Au encore
Assigner (nom_logique,"nom_physique")
Assign (nom_logique,'nom_physique')

Exemple:
En algorithme àassocier (fp,"c:\archive\liste_patient.dat")
En pascal àassign (fp,' c:\archive\liste_patient.dat');
Remarque:

Si le nom physique comporte des dossiers, ces derniers doivent être crée, au niveau du système d'exploitation par le programmeur ou l'utilisateur sinon lors d'exécution, le programme affiche se message d'erreur de type ("runtime errer").





-b- étape 2 : ouverture:
ouverture et création:
Pour crée un fichier qui n'existe pas ou bien pour ouvrir un fichier et effacer son contenu, on emploi la commande rewrite.
Syntaxe:


En analyse et en algorithmique En pascal
Recrée (nom_logique) Rewrite (nom_logique);

Exemple:
En algorithme à recrée (fp)
En pascal à rewrite (fp);

ouverture et remise à zéro:
Pour ouvrir un fichier existant et renvoyer le pointeur au début du fichier (pour pouvoir lire ou écrire à partir du début du fichier).on employer la commande reset.
Syntaxe:


En analyse et en algorithmique En pascal
Ouvrir (nom_logique) Reset (nom_logique);

Exemple:
En algorithme àouvrir (fp)
En pascal àreset (fp);
-c- étape3 : écriture dans un fichier:
Pour écrire sur un fichier ou pour modifier une valeur ou un enregistrement dans un fichier, il suffit d'employer la commande Write.
Syntaxe :


En analyse et en algorithmique En pascal
Ecrire (nom_logique, variable) Write (nom_logique, variable);

Remarque :
Chaque écriture d'une valeur ou d'un enregistrement permet d'avancer automatiquement le pointeur du fichier d'une position.

Exemple:
On se propose de saisir un enregistrement "fiche" de type patient et l'enregistrement dans le fichier "fp".

{Étape 1:lecture de tous les champ de l'enregistrement}
Avec fiche faire
Ecrire ("donner le numéro de patient : ")
Lire (num)
Ecrire ("donner son nom : ")
Lire (nom_pr)
Ecrire ("donner son age : ")
Lire (age)
Fin avec
{Étape 2: écriture de l'enregistrement dans le fichier}
Ecrire (fp, fiche)
-d- étape 4: lecture à partir d'un fichier:
Pour lire une valeur ou un enregistrement à partir d'un fichier, il suffit d'employer l'instruction read.
Syntaxe:


En analyse et en algorithmique En pascal
lire (nom_logique, variable) Read (nom_logique, variable);

Exemple:
{Étape 1: lecture de l'enregistrement fiche à partir du fichier fp}
Lire (fp, fiche)
{Étape 2 : affichage de tout le champ de l'enregistrement}
Avec fiche faire
Ecrire ("numéro du patient : ", num)
Ecrire ("nom : ", nom_pr)
Ecrire ("age : ", age)
Fin avec
-e- étape 5: fermeture d'un fichier:
A la fin du traitement, on doit fermer tous les fichiers ouverts
Syntaxe:


En analyse et en algorithmique En pascal
fermer (nom_logique) close (nom_logique);

Exemple:
En algorithme à fermer (fp)
En pascal à close (fp)
-f- étape intermédiaire : test de fin du fichier :
La fonction fin_fichier permet de tester à tout moment, au cours du programme, si on a atteint la fin de fichier en lecture; dans ce cas elle retourne vrai.
Syntaxe:


En analyse et en algorithmique En pascal
Fin_fichier (nom_logique) Eof (nom_logique);

Exemple:
Afficher le nombre de patients adultes dans le fichier fp sachant que le nombre de patients de ce fichier est inconnu et qu'un patient est considéré adulte s'il a une age>=20.
Résultat = écrire ("le nombre d'adultes est ", Nb)
Traitement =
Nbç0
Tant que non (fin_fichier (fp)) faire
Lire (fp, fiche)
Si fiche.age >= 20 alors
Nbç Nb+1
Fin si
Fin tant que
-g- vérification des entrées sorties
La directive de compilation I permet de gérer les erreurs d'entrée-sortie.
Par défaut, elle est active et toutes les opérations d'entrée-sortie sont vérifiées par le système. Toute erreur provoque l'arrêt du programme et un message d'erreur est affiché
On peut la désactiver (ponctuellement) avec la directive:{$I}; dans ce cas avec une vérification n'est effectué à l'exécution:
- il est alors de la responsabilité du programmeur de vérifier et corriger les erreurs.
- Grâce à la fonction standard IORESULT, il est possible de savoir si l'opération d'entrée sotie s'est bien passé (retourne 0).

Exemple:
Le programme demande le nom du fichier jusqu'à ce qu'un nom de fichier existant soit spécifié:
Repeat
Write ('donnée le nom physique du fichier ? ') ;
Readln (nom_physique) ;
Assign (fp, nom_physique + '.dat') ;
{$I-} reset (fp); {$I+}
OK: = (IOResult =0);
If not OK then
Writeln (' impossible de trouver le fichier ', nom_physique);
Until OK ;
Exercice d'application :
Nous nous proposons d'écrire un programme nommée alphabet, qui :
Enregistre sur le disque « c : » et dans le dossier « bac info », un fichier ayant pour nom lettre.dat comportant des lettre alphabétique saisie au clavier. Le nombre de ces lettres est inconnu à l’avance. La condition d’arrêt est la saisie d’un caractère nom lettre. Ce dernier ne sera pas enregistré dans le fichier.
Affichage toute l’élément de fichier aussi que le nombre de lettre majuscules et le nombre des lettre minuscules.

-V- les fichiers à accès direct :
-1- définition :
Un fichier est dit à accès direct si on peut accéder directement à un enregistrement voulu en connaissant son numéro d’ordre dans le fichier.
Om peut placer directement le pointeur de fichier sur l’enregistrement voulu grâce à la procédure ponter (seek en pascal) qui nécessite deux paramètres : le nom logique du fichier et le numéro d’ordre voulu.

Remarque :
Le numéro du premier élément d’un fichier est 0, donc pour accéder a niéme élément du fichier il faut pointer l’élément n-1.
Syntaxe :


En analyse et en algorithmique En pascal
pointer (nom_logique, numéro) seek (nom_logique, numéro);

Remarque :
On doit contrôler le dépassement de la fin de fichier par la fonction taille_fichier (en pascal filesize) qui renvoie le numéro d’éléments contenus dans le fichier.
Syntaxe :


En analyse et en algorithmique En pascal
Taille_fichier (nom_logique) Filesize (nom_logique);

Exemple :
Pour déplacer le pointeur de fichier sur l’inducteur de fin de fichier : seek (nom_logique, filesize (nom_logique)) ;
-2- autres fonctions et procédure prédéfinis :
-a- fonction position_fichier :
Cette fonction renvoie la position du pointeur de fichier, c'est-à-dire le numéro de l’élément courant et elle ne peut pas s’appliquer à un fichier texte.
Syntaxe :


En analyse et en algorithmique En pascal
Position_fichier (nom_logique) filepos (nom_logique);

-b- procédure effacer :
Cette procédure détruite le fichier externe (physique) associé au fichier logique, que permet être idifférément ouvert ou fermé avant son effacement.
Syntaxe :


En analyse et en algorithmique En pascal
effacer (nom_logique) frase (nom_logique);

-c- procédure renommer :
Cette procédure permet de changer le nom d’un fichier ce dernier doit être fermé avant le renommer.
Syntaxe :


En analyse et en algorithmique En pascal
renommer (ancien nom_logique, nouveau nom_physique) rename (ancien nom_logique, nouveau nom_physique);

-d- procédure tranquer :
Cette procédure permet de supprimer tous ce qui se trouve après la position courante du pointeur.
Syntaxe :


En analyse et en algorithmique En pascal
tranquer (nom_logique) truncate (nom_logique);

Remarque :
Ces fonctions et ces procédures sont valables aussi bien pour l’accès direct que pour l’accès séquentielle pour pouvoir les utiliser dans un programme pascal, il est préférable de déclarer l’utilisation de l’unité " dos".






Exercice d'application:
Nous voulons accéder de façon direct el lire les données enregistrées dans un fichier f_pairs contenant des entiers pairs saisis du clavier de la façon suivantes :
Saisir au clavier le numéro d'ordre de la donnée à lire.
Si le numéro d'ordre saisi ne correspondre pas à une position valide dans le fichier, le message "vous êtes hors de fichier" sera afficher, sinon c'est la donnée lui qui sera affichée.
Répéter les deux actions précédentes jusqu'à la réponse par nom à la question "continuer (O/N) ? "
Ecrire une procédure qui réalise cette tâche.
Solution:
Procédure affiche (var f: f_pairs)
Résultat = affichage
Traitement =
Affichage : [fsç taille_fichier (f)]
[ ] Tant que (p > fs) faire
Ecrire ("vous êtes hors de fichier")
P = donnée ("donner une autre position ")
Fin tant que
Pointer (f, p-1)
Lire (f, x)
Ecrire ("la valeur = ", x)
[ ] Répéter
Rep = donnée ("voulez vous continuer (O/N) ? ")
Rep ç majus (Rep)
Jusqu'à (Rep = "N")

-VI- les fichiers texte :
-1- définition:
Un fichier texte est un fichier qui contient uniquement des suites de caractère.
-2- présentation:
A la différence des autres fichiers, un fichier texte contient des caractères du type "retour chariot " (CR) ou fin ligne (EOLn) et fin de texte (ctrl-Z).
Comme pour les autres fichiers, avant de travailler sur un fichier texte, il faut le déclarer en lui affectant une variable de type TEXT qui servira à la désigner tout ou long du programme, puis on doit "assigner" le nom physique ou nom logique du fichier. Ce dernier peut être ouvert en lecteur par la commande "Reset" ou en écriture par la commande "Rewrite".



-3- déclaration:
En algorithme :
TDO

Objet Type/nature Rôle
Nom_logique texte Fichier texte pour …

En pascal :
Var
Nom_logique : text ;
-4- procédure et fonction prédéfinis :
Les procédures et les fonctions vues précédemment sont aussi valables avec le fichier texte. De plus les fichiers texte permettent de rajouter les commandes spécifiques aux chaînes de caractères.
-a- fonction fin ligne :
Cette fonction renvoi e une valeur booléen qui vaut vrai si le pointeur des le caractère CR (retour chariot) et vaut faux dans les cas contraire.
Syntaxe:


En analyse et en algorithmique En pascal
Fin ligne (nom_logique) EOLn (nom_logique);

-b- fonction chercher_fin_ligne :
Cette fonction est identique à EOLn mais elle supprime les espaces el les caractères de tabulation avant d'effectuer le test.
Syntaxe:


En analyse et en algorithmique En pascal
Chercher_fin_ligne (nom_logique) seekEOLn (nom_logique);

-c- fonction fin_fichier :
Cette fonction est identique à Eof mais elle supprime les espaces et les caractères de tabulation avant d'effectuer le test.
Syntaxe:


En analyse et en algorithmique En pascal
Chercher_Fin_fichier (nom_logique) seekEof (nom_logique);

-d- procédure ajouter :
Cette procédure permet d'ouvrir le fichier en fixant la position courante du pointeur à la fin de fichier. On peut ainsi ajouter des ligne de texte.
Syntaxe:


En analyse et en algorithmique En pascal
ajouter (nom_logique) append (nom_logique);

-e- procédure lire_nl :
Cette procédure permet de placer le pointeur de fichier sur la prochaine ligne (juste après la première marque CR-LF rencontrée).
Syntaxe:


En analyse et en algorithmique En pascal
Lire_nl (nom_logique) Readln (nom_logique);

-f- procédure ecrire_nl :
Cette procédure permet d'introduire dans le fichier texte une séquence CR-LF pour marquer à la fin de ligne.
Syntaxe :


En analyse et en algorithmique En pascal
Ecrire_nl (nom_logique) Writeln (nom_logique);
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
mohamedhk2



عدد الرسائل : 103
العمر : 29
الوصف الشخصى : maamouri 7or
تعيين الادارة :
تاريخ التسجيل : 18/11/2008

مُساهمةموضوع: رد: COUR FICHIER   الأربعاء 26 نوفمبر - 23:55

MERCIIIIIIIIIIIIIIIIIIIIII
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://3w.sartimes2.com#3w.tunisia-sat.com
 
COUR FICHIER
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» Cour enregistrement

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات معمورة لوف --- forum maamoura love :: الأقسام العامة :: Special BAC 2008/2009-
انتقل الى: