Consultez gratuitement nos différents cours

  • Conduits et moulures (Technologie électrique)

    Les conduits assurent le passage des conducteurs isolés dans les installations électriques et permettent une protection continue des conducteurs. On distingue les conduits constitués d'élément non ouvrables (tubes). Les moulures, goulottes composées de deux éléments et qui sont ouvrables. Classification et définition des conduits Les conduits sont classés par rapport aux qualités suivantes: Isolement Les conduits I: ils sont en matière isolante. Les conduits F: ils comportent un fourreau...

    Lire la suite : Conduits et moulures

  • Réseaux informatiques et réseaux télécoms (Réseaux informatiques)

    La différence entre réseaux informatiques et réseaux télécoms: Les réseaux informatiques sont orientés dans la transmission des données sous forme de fichier informatiques d'où le nom de téléinformatique. Cela se fait surtout en transmission asynchrone des données ou en transmission différée des données. Les réseaux des télécommunications sont orientés transmissions des informations sous forme analogique avec pour référence le téléphone. Surtout transmission synchrone des informations...

    Lire la suite : Réseaux informatiques et réseaux télécoms

  • Application des lois de Descartes (Science physique)

    Miroirs plans On appelle miroir plan toute surface plane réfléchissante. Stigmate du miroir plan   Considérons le miroir M et un objet lumineux (S). Le rayon SH perpendiculaire à M a pour rayon réfléchi le rayon HS. L'image S' de S si elle existe appartient à la droite SH. Un autre rayon incident SI se réfléchit suivant IR tel que SÎN=NÎR or SH//NI ce qui veut dire que l'angle HSI égal l'angle IS'A. Le triangle ISS' est isocèle et S' est le symétrie de S par rapport au plan du miroir. Enoncé: Le...

    Lire la suite : Application des lois de Descartes

  • Conducteurs et câbles (Technologie électrique)

    Constitution générale Un conducteur isolé est constitué par un ensemble comprenant: Une âme conductrice. Une enveloppe isolante. Un câble multiconducteur est un ensemble qui regroupe plusieurs conducteurs électriques distincts et mécaniquement solidaires généralement sous un ou des revêtements protecteurs externes. Un câble mono conducteur ne comporte qu'un conducteur isolé, revêtu d'une gaine de protection. Ame conductrice C'est la partie centrale et métallique d'un conducteur conduisant le...

    Lire la suite : Conducteurs et câbles

Les fichiers

Généralités

Un fichier est une collection d'information structurée en unité d'accès appelé enregistrement.
Un fichier est toujours enregistré dans un support externe à la mémoire centrale (disque dur, disquette, clef USB ...).
L'accès aux différents éléments d'un fichier peut être soit séquentiel soit direct.

Déclaration d'un fichier

type
etudiant = record
matricule : string;
nom : string;
note : real;
end;
fichier = file of etudiant;

Remarque:

Un fichier une fois créé doit continuer à exister indépendamment du programme qui le construit. Chaque fichier a un nom physique ou chemin d'accès qui se présente sous la forme 'unité: nom_fichier.Extension'unité peut être A: B: C: D:
nom_fichier est constitué de 1 à 8 caractères.

extention de 0 à 3 caractères.

Exemple:

'C:\Etude.txt'
Le nom du fichier est spécifié par l'instruction assign.

Exemple:

assign(fichier, 'C:\etude.txt')

Exemple:

var F: file of etudiant;
begin
assign(F, 'A:\etude.txt');

L'accès séquentiel à un fichier

Pour l'accès séquentiel on parcourt le fichier élément par élément pour obtenir l'élément à traiter. Les primitives utilisées sont:

  • rewrite(fichier) permet d'ouvrir le fichier en écriture. Si le fichier existe déjà son ancien contenu devient inaccessible. Si le fichier n'existe pas encore, il sera tout simplement créé (pour l'instant il sera vide).
  • reset(fichier) permet l'ouverture du fichier en lecture ou en lecture écriture. Dans ce cas le fichier doit effectivement exister sinon il se produit une erreur d'exécution.
  • write(fichier, val) cette instruction permet d'écrire le contenu de val dans le fichier. Seulement val doit être du même type que les éléments du fichier.
  • read(fichier, val) cette instruction permet d'introduire un élément du fichier dans val.
  • eof(fichier) permet de détecter la fin du fichier. Cette fonction prend la valeur vraie si la fin du fichier a été atteinte.
  • close(fichier) permet de fermer le fichier à partir de là le fichier devient inaccessible.

Exemple:

program creation_fichier_etudiant;
type etudiant = record
matricule : string;
nom : string;
note : real;
end;
var fichir : file of etudiant;
personne : etudiant;

begin
assign(fichier, 'C:\etudiant.txt');
rewrite(fichier);
repeat
write('matricule: ')
readln(personne.matricule);
write('nom');
readln(personne.nom);
write('note: ');
readln(personne.note);
if length(personne.matricule) <> 0 then
write(fichier, personne);
until length(personne.matricule) = 0;
close(fichier);
end.

Exercice:

Ecrire un programme qui permet d'afficher la liste des informations des étudiants contenu dans 'C:\etudiant.txt'.

Solution:

var F:file of etudiant
program affiche per: etudiant
begin
assign(F, 'C:\etudiant.txt');
reset(F);
read(F, per);
while not (eof(F)) do
begin
writeln(per.matricule);
writeln(per.nom);
writeln(per.note);
read(F, per);
end;
close(F);
end.

 

Accès direct

 

Il est possible d'accéder directement à un élément du fichier lorsqu'on connaît son numéro.
La seule instruction nouvelle lors de l'accès direct est l'instruction seek(fichier, numéro) qui place la tête de lecture à l'élément donc le numéro a été indiqué.
Par convention les éléments d'un fichier sont spécifiés à partir de 00 et non à partir de 1
Exemple: seek(F,2)

  • filesize(fichier) renvoie le nombre d'élément.
  • filesize(fichier)-1 pour trouver le dernier élément.
  • seek(F, filesize(fichier)) pour placer le curseur à la fin du fichier.

Exemple:

procedure affiche_element(var F: fichier)
var val: etudiant; num: integer;
begin
assign(F,'C:\etudiant.txt');
reset(F);
writeln('Entrer un numéro: ');
repeat
write('Numéro = ');
readln(num);
until num <= filesize(F)
seek(F, num);
read(F, val);
writeln('Matricule: ',val.matricule);
writeln('nom: ', val.nom);
writeln('note: ',val.note);
close(F);
end;