1 / 27

Section XI Traitement de fichiers

Section XI Traitement de fichiers. Algorithmes et résolution de problèmes 18279 FGE. Contenu. Introduction Traitement interactif Traitement en batch Définitions Accès aux fichiers Ouverture / fermeture Lecture / écriture Exemples Devoir #9. Introduction.

phil
Download Presentation

Section XI Traitement de fichiers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Section XITraitement de fichiers Algorithmes et résolution de problèmes 18279 FGE

  2. Contenu • Introduction • Traitement interactif • Traitement en batch • Définitions • Accès aux fichiers • Ouverture / fermeture • Lecture / écriture • Exemples • Devoir #9

  3. Introduction • Les algorithmes vus à date sont interactifs • Les données sont fournies directement par l'utilisateur • Via le clavier • Les résultats sont acheminés directement à l'utilisateur • Via la console • Les résultats produits par un algorithme ne sont pas réutilisés comme données par un autre algorithme

  4. Introduction (suite) • Un système informatique est composé de plusieurs sous-systèmes • Exemple : un système de gestion est généralement composé au minimum des sous-systèmes suivants • Paie • Comptes recevables • Contrôle d'inventaire • Les sous-systèmes sont exécutés périodiquement (ex: à chaque mois)

  5. Introduction (suite) • Certains sous-systèmes requièrent des données des utilisateurs • Exemple: entrée des feuilles de temps • D'autres sous-systèmes utilisent comme données des résultats produits par des sous-systèmes • Exemple: calcul de la paie • Les résultats produits par un sous-système doivent être stockés afin d'être ultérieurement récupérés par un autre sous-système

  6. Collectede données Calcul depaie Impressionde chèques Collectede données Calcul depaie Impressionde chèques Fichier Fichier Introduction (suite) • Le flux d'exécution des sous-systèmes peut être représenté par un organigramme • L'information transite d'un sous-système au suivant via des fichiers

  7. Plusieurs sous-systèmes peuvent partager des fichiers Anciennesdonnéesde comptes Transactionsbancaires Gestionde comptesbancaires Impressionde rapport Nouvellesdonnéesde comptes État decomptes Introduction (suite) • Un sous-système peut aussi avoir comme tâche de mettre à jour le contenu de fichiers

  8. Introduction (suite) • Le traitement différé de données stockées en fichiers est communément appelé le traitement en batch • Les données sont récupérées en entrées de fichiers • Les résultats sont stockés en sorties dans des fichiers • Le traitement en batch peut tout-de-même requérir l'assistance de l'utilisateur • Demander des informations de contrôle • Afficher des informations de contrôle

  9. Définitions • Fichier Zone de stockage des données et/ou résultats. Un fichier contient généralement une séquence de dossiers • Canal d'accès Identificateur de fichier permettant de diriger les entrées/sorties (i.e. lectures/écritures) vers un fichier spécifique • Accès séquentiel Lecture séquentielle des dossiers d'un fichier. L'ordre de lecture des dossiers correspond à l'ordre d.apparition de ceux-ci dans le fichier

  10. Accès aux fichiers • Deux modes d'accès possibles • Accès séquentiel • Le traitement en batch exploite couramment l'accès séquentiel • Accès direct : accéder directement à un dossier selon sa position (i.e. son index) • Les bases de données exploitent l'accès direct • Dans le cours 18279 FGE, nous nous limitons à l'accès séquentiel • Beaucoup plus simple

  11. Accès aux fichiers (suite) • Gestion des fichiers • Le système d'exploitation (SE) est responsable de la gestion des fichiers sur l'ordinateur • Windows, Linux, XWindows, PalmOS, … • Le système de fichiers est la composante du SE assurant la gestion des fichiers • FAT32, NTFS, ext2, … • Tout logiciel exploitant des fichiers doit transiger avec le SE afin d'accéder à ces fichiers

  12. Ouverture de fichiers • Afin d'accéder à un fichier, il faut premièrement ouvrir le fichier • On doit demander au système d'exploitation (SE) l'autorisation d'accéder à un fichier • Celui-ci s'assure que • Le fichier existe (il peut le créer au besoin) • Le fichier n'est pas présentement utilisé par un autre système • Le SE verrouille alors le fichier afin d'en assurer l'accès exclusif

  13. Ouverture de fichiers (suite) • Le verrouillage de fichier est basé sur les canaux d'accès • Le fichier ouvert par le système d'exploitation est associé à un canal d'accès • Les opérations de lecture et/ou d'écriture seront ultérieurement dirigées vers un fichier via son canal d'accès • Dans un algorithme, un canal d'accès est identifié par un numéro

  14. OUVRIR"DONNEES"SUR4EN LECTURE OUVRIR "DONNEES" SUR 4EN LECTURE Nom du fichier Canal d'accès Mode d'accès Ouverture de fichiers (suite) • Un fichier séquentiel peut être ouvert soit pour la lecture, soit pour l'écriture, mais pas les deux simultanément • Exemple • Ouverture du fichier DONNEES pour la lecture :

  15. Ouverture de fichiers (suite) • Un même canal d'accès ne doit pas être associé simultanément à deux fichiers • La seconde opération de lecture sera refusée par le système d'exploitation • Un algorithme dispose généralement de plusieurs canaux d'accès • Dans LARP, les canaux 1 à 256 sont disponibles OUVRIR "DONNEES_1" SUR 3 EN LECTURE OUVRIR "DONNEES_2" SUR3EN LECTURE

  16. OUVRIR "DONNEES" SUR 4 EN LECTURE Mode d'accès Ouverture de fichiers (suite) • Trois modes d'accès sont disponibles • LECTURE : pour lire des données du fichier • ÉCRITURE : pour écrire des résultats dans le fichier (le contenu d'un fichier existant est supplanté) • AJOUT : pour écrire des résultats à la fin d'un fichier (le contenu d'un fichier existant est préservé)

  17. Ouverture de fichiers (suite) • Autres exemples d'ouverture de fichiers • Dès l'ouverture du fichier RESULTATS, son contenu existant est détruit • Tous résultats écrits sur le canal d'accès #2 seront le seul contenu du fichier • Le contenu existant du fichier ENREGISTREMENTS est conservé • Tous résultats écrits sur le canal d'accès #6 est ajouté à la fin du contenu du fichier avant son ouverture OUVRIR "RESULTATS" SUR 2 EN ÉCRITURE OUVRIR "ENREGISTREMENTS" SUR 6 EN AJOUT

  18. Fermeture de fichiers • Tout fichier ouvert doit être éventuellement fermé • Afin d'indiquer au système d'exploitation (SE) qu'il peut permettre à d'autres systèmes (i.e. logiciels) d'accéder au fichier • Selon le SE, le contenu d'un fichier non fermé peut être irrémédiablement perdu • Tout algorithme doit fermer les fichiers qu'il a ouvert avant de terminer son exécution

  19. OUVRIR "DONNEES" SUR 2EN LECTURE FERMER2 Notez qu'un canald'accès peut être réutilisé aprèsfermeture Fermeture de fichiers (suite) • Un fichier est fermé via son canal d'accès • Un fichier peut être séquentiellement ouvert à de multiples reprises OUVRIR "DONNEES" SUR 2 EN LECTURE OUVRIR "RESULTATS" SUR 3 EN ÉCRITURE … FERMER 2 FERMER 3 OUVRIR "DONNEES" SUR 2 EN LECTURE … FERMER 2 OUVRIR "DONNEES" SUR 2 EN ÉCRITURE … FERMER 2

  20. OUVRIR "DONNEES" SUR 2EN LECTURE LIRE Nom,Numéro,Salaire DE2 FERMER2 Lecture d'un fichier • Une lecture d'un fichier se fait de la même façon qu'une lecture du clavier • Il suffit d'indiquer via quel canal d'accès lire • Une opération de lecture sur un canal d'accès associé à un fichier ouvert en mode d'écriture (ou d'ajout) est refusée • Le système d'exploitation est responsable de valider les entrées/sorties à un fichier selon son mode d'accès OUVRIR "DONNEES" SUR 2 EN LECTURE LIRE Nom, Numéro, SalaireDE 2 FERMER 2

  21. Lecture d'un fichier (suite) • Exemple #1 : algorithme lisant le salaire des 12 employés de l'entreprise (à partir du fichier SALAIRE_EMPLOYES) et affichant la masse salariale DÉBUT \\ Accès aux données en mode lecture OUVRIR "SALAIRE_EMPLOYES" SUR 1 EN LECTURE \\ Additionner tous les salaires Total = 0 POUR NoEmp = 1 JUSQU'À 12 FAIRE LIRE Nom, Numéro, Salaire DE 1 Total = Total + Salaire FINPOUR \\ Afficher la masse salariale et fermer le fichier ÉCRIRE Total FERMER 1 FIN DémonstrationavecLARP

  22. Lecture d'un fichier (suite) • Dans l'exemple précédent, le fichier SALAIRE_EMPLOYES doit obligatoirement contenir 12 dossiers d'employés • Généralement, on veut plutôt lire tous les dossiers du ficher, quel qu'en soit le nombre • Pour interroger un canal d'accès afin de connaître si la fin d'un fichier est atteinte OUVRIR "DONNEES" SUR 2 EN LECTURE SI FINDECONTENU(2)ALORS ÉCRIRE "Fichier vide" FINSI FERMER 2

  23. Notez bien lanégation : tantque la fin ducontenu n'est pas atteinte Lecture d'un fichier (suite) • Exemple #2 : exemple précédent révisé afin de fonctionner indépendamment du nombre de dossiers dans le fichier DÉBUT \\ Accès aux données en mode lecture OUVRIR "SALAIRE_EMPLOYES" SUR 1 EN LECTURE \\ Additionner tous les salaires Total = 0 TANTQUE NONFINDECONTENU(1) FAIRE LIRE Nom, Numéro, Salaire DE 1 Total = Total + Salaire FINTANTQUE \\ Afficher la masse salariale et fermer le fichier ÉCRIRE Total FERMER 1 FIN

  24. Début Ouvrir "SALAIRE_EMPLOYES"sur 1 en Lecture Total = 0 NON FINDECONTENU(1)? Non Oui Écrire Total Lire Nom,Numéro, Salaire de 1 Fermer 1 Total = Total + Salaire Fin Lecture d'un fichier (suite) • Exemple #2 (suite) : organigramme • Remarquez que laboucle ne nécessiteplus de compteur • Attention auxembranchementsOui/Non dans lacondition de laboucle

  25. OUVRIR "RESULTATS" SUR2 EN LECTURE ÉCRIRE Nom,Numéro,Paie DANS2 FERMER2 Écriture dans un fichier • Une écriture dans un fichier se fait de la même façon qu'une écriture à l'écran • Il suffit d'indiquer via quel canal d'accès écrire • Une opération d'écriture sur un canal d'accès associé à un fichier ouvert en mode lecture est refusée • Le système d'exploitation est responsable de valider les entrées/sorties à un fichier selon son mode d'accès OUVRIR "RESULTATS" SUR 2 EN ÉCRITURE ÉCRIRE Nom, Numéro, PaieDANS 2 FERMER 2

  26. Écriture dans un fichier (suite) • Exemple #3 : algorithme lisant les heures travaillées par les employés (à partir du fichier HEURES_TRAV) et écrivant un rapport de paie (dans le fichier RAP_PAIE) DÉBUT \\ Accès aux fichiers OUVRIR "HEURES_TRAV" SUR 1 EN LECTURE OUVRIR "RAP_PAIE" SUR 2 EN ÉCRITURE \\ Calculer la paie de chaque employé TANTQUE NONFINDECONTENU(1) FAIRE \\ Lire les données LIRE Nom, Numéro, Heures, Taux DE 1 \\ Calculer la paie de l'employé SI Heures > 40 ALORS Paie = 40 * Taux + (Heures – 40) * Taux * 1.5 SINON Paie = Heures * Taux FINSI \\ Écrire les donneés de paie ÉCRIRE Nom, Numéro, Paie DANS 2 FINTANTQUE \\ Fermer les fichiers FERMER 1 FERMER 2 FIN DémonstrationavecLARP

  27. Devoir #9 (le dernier!) • Complétez le pseudo-code fourni avec le devoir • Algorithme de production de rapport de paie avec mise à jour des dossiers d'employés • Énoncé du devoir et fichier LARP disponible sur WebCT, via l'outil Travaux • Téléchargez la dernière version de LARP (compilation 010) • À remettre au plus tard le 12 décembre 2003 via WebCT

More Related