Difference between revisions of "File/fr"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting; deleted category included in page template)
 
(One intermediate revision by one other user not shown)
Line 9: Line 9:
 
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/fr|reserved word]] en Pascal. Exemple :
 
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/fr|reserved word]] en Pascal. Exemple :
  
<syntaxhighlight>{$mode objfpc}{$H+}
+
<syntaxhighlight lang=pascal>
 +
{$mode objfpc}{$H+}
 
var
 
var
 
   MyFile: file;
 
   MyFile: file;
Line 28: Line 29:
 
Le type [http://www.freepascal.org/docs-html/ref/refsu21.html '''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).
 
Le type [http://www.freepascal.org/docs-html/ref/refsu21.html '''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).
  
<syntaxhighlight>{$mode objfpc}{$H+}
+
<syntaxhighlight lang=pascal>
 +
{$mode objfpc}{$H+}
 
var
 
var
 
   MyFile: file of Single;
 
   MyFile: file of Single;
Line 54: Line 56:
 
# Associer un fichier avec des données. ''Généralement'' en appelant [[AssignFile/fr|AssignFile]]. Un équivalent ancien est [[Assign/fr|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).
 
# Associer un fichier avec des données. ''Généralement'' en appelant [[AssignFile/fr|AssignFile]]. Un équivalent ancien est [[Assign/fr|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).
 
# Ouvrir le fichier par [[Reset/fr|Reset]] (lire un fichier existant, et peut-être écrire, voir ci-dessous), [[Rewrite/fr|réécrire]] (effacer le contenu et écrire), ou [[Append/fr|ajouter en fin]] (conserver le contenu et écrire). dans le cas du [[Reset/fr|Reset]] sur un fichier binaire non typé, la variable globale [[FileMode/fr|FileMode]] détermine si vous pouvez uniquement lire(fmOpenRead), ou lire et écrire (fmOpenReadWrite), dans le fichier.
 
# Ouvrir le fichier par [[Reset/fr|Reset]] (lire un fichier existant, et peut-être écrire, voir ci-dessous), [[Rewrite/fr|réécrire]] (effacer le contenu et écrire), ou [[Append/fr|ajouter en fin]] (conserver le contenu et écrire). dans le cas du [[Reset/fr|Reset]] sur un fichier binaire non typé, la variable globale [[FileMode/fr|FileMode]] détermine si vous pouvez uniquement lire(fmOpenRead), ou lire et écrire (fmOpenReadWrite), dans le fichier.
###### A FINIR ######
+
# Ensuite lire/écrire les données du fichier par les procédures standard [[Read/fr|Read]], [[Readln/fr|Readln]], [[Write/fr|write]] et [[Writeln/fr|writeln]].  Certains compilateurs Pascal utilisaient aussi les routines [[Get/fr|Get]] et [[Put/fr|Put]] pour les entrées/sorties. Pour les fichiers binaires non typés, utilisez [[BlockRead/fr|BlockRead]] et [[BlockWrite/fr|BlockWrite]].
# Then read/write file data by [[Read|read]], [[readln]], [[Write|write]] and [[writeln]] standard proceduresSome Pascal Compilers also used the [[Get]] and [[Put]] routines for I/O. For untyped binary files, use [[BlockRead]] and [[BlockWrite]].
+
# A la fin, libérer les ressources du fichier (et éventuellement nettoyer les données à écrire) en appelant [[CloseFile/fr|CloseFile]] (anciennement [[Close/fr|Close]]).
# 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 [http://www.freepascal.org/docs-html/rtl/sysutils/filerec.html FileRec record] (for untyped binary files) or [http://www.freepascal.org/docs-html/rtl/sysutils/textrec.html TextRec record] (for text files), instead of calling standard [[AssignFile]] ([[Assign]]) routines.
+
Une variable fichier est utilisée soit pour les entrées, les sorties ou les deux ensembles (E/S). Un fichier peut être un écran et/ou un clavier, un modem, un crayon lumineux, un écran tactile, une souris, une aire de stockage sur disque, une socket pour la connection à Internet, ou cela peut être quelque autre périphérique selon la manière dont les bibliothèques lient le fichier.
 +
Dans certains cas, la mémoire réelle peut être définie comme un fichier, ceci est utilisé dans le cas d'un disque en mémoire (RAM disk). Vous pouvez personnaliser où se trouve les données du fichier en initialisant [http://www.freepascal.org/docs-html/rtl/sysutils/filerec.html FileRec record] (pour les fichiers binaires non typés) ou [http://www.freepascal.org/docs-html/rtl/sysutils/textrec.html TextRec record] (pour les fichiers texte), au lieu d'appeler les routines standard [[AssignFile/fr|AssignFile]] ([[Assign/fr|Assign]]).
  
 
=Voir aussi=
 
=Voir aussi=
  
 
* [[File Handling In Pascal/fr|File Handling In Pascal]]
 
* [[File Handling In Pascal/fr|File Handling In Pascal]]
 
 
[[Category:File Handling/fr]]
 
[[Category:Pascal/fr]]
 
  
 
{{File}}
 
{{File}}

Latest revision as of 04:09, 15 February 2020

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.
  3. Ensuite lire/écrire les données du fichier par les procédures standard Read, Readln, write et writeln. Certains compilateurs Pascal utilisaient aussi les routines Get et Put pour les entrées/sorties. Pour les fichiers binaires non typés, utilisez BlockRead et BlockWrite.
  4. A la fin, libérer les ressources du fichier (et éventuellement nettoyer les données à écrire) en appelant CloseFile (anciennement Close).

Une variable fichier est utilisée soit pour les entrées, les sorties ou les deux ensembles (E/S). Un fichier peut être un écran et/ou un clavier, un modem, un crayon lumineux, un écran tactile, une souris, une aire de stockage sur disque, une socket pour la connection à Internet, ou cela peut être quelque autre périphérique selon la manière dont les bibliothèques lient le fichier. Dans certains cas, la mémoire réelle peut être définie comme un fichier, ceci est utilisé dans le cas d'un disque en mémoire (RAM disk). Vous pouvez personnaliser où se trouve les données du fichier en initialisant FileRec record (pour les fichiers binaires non typés) ou TextRec record (pour les fichiers texte), au lieu d'appeler les routines standard AssignFile (Assign).

Voir aussi

File-related types, procedures and functions:

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