File/fr

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) français (fr)

Dans un programme Pascal, une variable de type file peut être utilisée pour lire, écrire ou faire les deux dans un fichier. Une variable File est (généralement) associée à un fichier en utilisant la procédure AssignFile (anciennement juste Assign). (Voir File Handling In Pascal pour une approche plus objet et plus d'exemples.)

Types File

Binaire non typé

Le type file représente un fichier binaire non typé, ce qui signifie que c'est juste une suite de données (octets). Il peut être utilisé pour stocké n'importe quoi. Il peut être lu par BlockRead et écrit par BlockWrite (procédures). Le mot file est un reserved word en Pascal. Exemple :

{$mode objfpc}{$H+}
var
  MyFile: file;
  Data: array [0..99] of Byte;
begin
  AssignFile(MyFile, 'a');
  Reset(MyFile, 1 { size of read chunk });
  try
    BlockRead(MyFile, Data, SizeOf(Data)); 
  finally
    CloseFile(MyFile);
  end;
end.

Pour des exemples de code plus importants, voir BlockRead documentation.

Typé binaire

Le type file of <type>, où <type> est n'importe quel type simple (pas de référence/pointeur) ou un type enregistrement, est un fichier binaire représentant un suite de valeur de type <type>. Par exemple, vous pouvez avoir des fichiers qui sont des séquences d'entiers, de valeurs réelles flottantes ou d'enregistrement (record, dans la mesure ou les champs sont aussi des types simples).

{$mode objfpc}{$H+}
var
  MyFile: file of Single;
  Data: Single;

begin
  AssignFile(MyFile, 'singlevalues.bin');
  try
    Reset(MyFile);
    Read(MyFile, Data);

  finally
    CloseFile(MyFile);
  end;
end.

Fichier Texte

Le type TextFile (anciennement Text) représente un fichier texte. Reamrquez que cela est différent de seulement file of char. De confortables opérations de lecture et d'écriture sont disponibles pour les fichiers texte, qui analysent des entiers, des valeurs réelles flottantes et d'autres types. Aussi, les fins de lignes sont correctement traitées quand vous utilisez des fichiers texte.

Voir la page TextFile pour plus d'informations et d'exemples.

Travailler avec des fichiers

Travailler avec tous les types de fichiers est la même chose :

  1. Associer un fichier avec des données. Généralement en appelant AssignFile. Un équivalent ancien est Assign. (avec l'arrivée des bibliothèques d'IHM, la possibilité de conflit de noms avec les routines de fichier de Pascal s'est accrue. TPersistent et TForm (un descendant de TPersistent) ont des méthodes Assign et Close. A cause de cela, la confusion peut arriver si vous utilisez Assign ou Close dans des méthodes de TForm, par conséquent AssignFile et CloseFile ont été introduites comme alias pour les traditionnels Assign et Close, pour éviter un appel à un procédure inappropriée. Dans le code hors IHM, vous pouvez bien sûr employer Assign et Close, et économiser un peu de frappe).
  2. Ouvrir le fichier par Reset (lire un fichier existant, et peut-être écrire, voir ci-dessous), réécrire (effacer le contenu et écrire), ou ajouter en fin (conserver le contenu et écrire). dans le cas du Reset sur un fichier binaire non typé, la variable globale FileMode détermine si vous pouvez uniquement lire(fmOpenRead), ou lire et écrire (fmOpenReadWrite), dans le fichier.
###### A FINIR ######
  1. Then read/write file data by read, readln, write and writeln standard procedures. Some Pascal Compilers also used the Get and Put routines for I/O. For untyped binary files, use BlockRead and BlockWrite.
  2. At the end, release the necessary file resources (and possibly flush the data to be written) by calling CloseFile (older, equivalent name: just Close).

A file variable is used either for input, for output, or for both input and output (I/O). A file may be a screen and/or keyboard, a modem, a light pen, a touch screen, a mouse, an area of storage on disk, a socket for connecting to the Internet, or it could be some other device depending on how the run-time library ties the file. In some cases, actual memory can be defined as a file; this was used in the case of a ram disk. You can customize where the file data is by initializing FileRec record (for untyped binary files) or TextRec record (for text files), instead of calling standard AssignFile (Assign) routines.

Voir aussi

File-related types, procedures and functions:

File - Text - AssignFile - CloseFile - Reset - Rewrite - Get - Put - Read - Readln - Write - Writeln