[PASCAL] READ et WRITE avec 2 paramètres.

Fermé
alfnet Messages postés 2 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 27 septembre 2008 - 20 août 2008 à 21:46
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 21 août 2008 à 23:51
Salut,

J'ai vus dans plusieurs tutos pour la language PASCAL que pour écrire le contenu d'un tableau de RECORD dans un fichier séquentiel, on utilise qque chose comme:
PROCEDURE Tab2File (VAR tab:tIndividu ; VAR fOut : fIndividu; lt : INTEGER);
(* Tab initialsé, fOut assigné et fermé, lt>0 *)
VAR i:INTEGER;
BEGIN
   REWRITE (fOut);
   FOR i := 1 TO lt DO
      WRITE (fOut, tab[i]);
   CLOSE (fOut);
END;


Alors que pour écrire le contenu d'un fichier séquentiel dans un tableau de RECORD, on utilise qque chose comme:
PROCEDURE File2Tab (VAR fIn : fIndividu, VAR tabOut:tIndividu );
VAR i:INTEGER;

BEGIN
   i:=0;
   RESET (fIn);
   WHILE NOT eof(fIn) DO
      BEGIN
         i:=i+1;
         READ (fIn, tabOut[i]);
      END;
   CLOSE (fIn);
END;


J'aurais voulu savoir s'il y avait un rapport entre
WRITE (fOut, tab[i]);
et
READ (fIn, tabOut[i]);


En d'autres termes, doit-on toujours utiliser WRITE pour écrire dans un fichier ce que l'on a lu dans un tableau et READ pour écrire dans un tableau ce qu'on a lu dans un fichier?

L'instruction de type
READ (tab[i], fOut);
aurait-elle comme effet d'écrire dans le fichier, ce qui vient du tableau et
WRITE (tabOut[i], fIn);
d'écrire dans le tableau ce qui a été lu dans le fichier?

Merci d'avance pour votre aide à toutes et tous...
A voir également:

1 réponse

KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
21 août 2008 à 23:51
De façon général, soit f un fichier d'élément, et t un tableau d'élément.

Les procédures suivantes sont quasi équivalente :
read(f,x); pour le fichier et x:=t[i] pour le tableau
write(f,x); pour le fichier et t[i]:=x pour le tableau

En fait read(f,x) lit la valeur de la position courante et la place dans x
et write(f,x) écrit la valeur de x à la position courante du fichier...

Ca n'a aucune importance que x soit en fait un t[i] ou autre élément...
-1