Sign in Join
Wiki copytemporary

File/fr: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: File/fr

OldNewLine
1+Dans un programme [[Pascal/fr|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/fr|AssignFile]] (anciennement juste [[Assign/fr|Assign]]). (Voir [[File Handling In Pascal/fr|File Handling In Pascal]] pour une approche plus objet et plus d'exemples.)
2+
3+# Types File
4+
5+## Binaire non typé
6+
7+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 :
8+
9+``` pascal
10+{$mode objfpc}{$H+}
11+var
12+ MyFile: file;
13+ Data: array [0..99] of Byte;
14+begin
15+ AssignFile(MyFile, 'a');
16+ Reset(MyFile, 1 { size of read chunk });
17+ try
18+ BlockRead(MyFile, Data, SizeOf(Data));
19+ finally
20+ CloseFile(MyFile);
21+ end;
22+end.
23+```
24+
25+Pour des exemples de code plus importants, voir [BlockRead documentation](http://www.freepascal.org/docs-html/rtl/system/blockread.html).
26+
27+## Typé binaire
28+
29+Le type [**file of \<type\>**](http://www.freepascal.org/docs-html/ref/refsu21.html), 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).
30+
31+``` pascal
32+{$mode objfpc}{$H+}
33+var
34+ MyFile: file of Single;
35+ Data: Single;
36+
37+begin
38+ AssignFile(MyFile, 'singlevalues.bin');
39+ try
40+ Reset(MyFile);
41+ Read(MyFile, Data);
42+
43+ finally
44+ CloseFile(MyFile);
45+ end;
46+end.
47+```
48+
49+## Fichier Texte
50+
51+Le type [[Text/fr|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.
52+
53+Voir la page [[Text/fr|TextFile]] pour plus d'informations et d'exemples.
54+
55+# Travailler avec des fichiers
56+
57+Travailler avec tous les types de fichiers est la même chose :
58+
59+1. 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).
60+2. 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.
61+3. 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]].
62+4. 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]]).
63+
64+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](http://www.freepascal.org/docs-html/rtl/sysutils/filerec.html) (pour les fichiers binaires non typés) ou [TextRec record](http://www.freepascal.org/docs-html/rtl/sysutils/textrec.html) (pour les fichiers texte), au lieu d'appeler les routines standard [[AssignFile/fr|AssignFile]] ([[Assign/fr|Assign]]).
65+
66+# Voir aussi
67+
68+- [[File Handling In Pascal/fr|File Handling In Pascal]]
69+
70+---
71+*From the Free Pascal wiki, page "File/fr", as it stood on 2020-02-15 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history