FICHIER
Les fichiers sont absolument nécessaires lorsqu'on doit garder certaines
informations lorsque le programme est terminé. Il existe de nombreuses
routines pour manipuler les fichiers.
Opération sur les fichiers
Copier un fichierFichier
Les fichiers sont absolument nécessaires lorsqu'on doit garder certaines
informations lorsque le programme est terminé. Il existe de nombreuses
routines pour manipuler les fichiers.
Copier un fichier
Le premier paramètre est le nom du fichier à copier et
le deuxième et le nom du fichier copié. Si le dernier paramètre
est à false, le fichier sera écrasé s'il existe.
copyfile('c:\test\1.tmp','d:\2.tmp',false);
Renommer un fichier
La fonction RenameFile sert à renommer un fichier. On inscrit l'ancien
nom de fichier et ensuite le nouveau nom voulu function
RenameFile('ancien.c','nouveau.c');
La fonction retourne true si l'opération a bien été réalisée.
Déplacer un fichier
La fonction movefile sert à déplacer un fichier, le premier paramètre
est la source, le deuxième est la cible.
movefile('d:\2.tmp','c:\1.tmp');
Effacer un fichier
Cette opération efface le fichier du disque et enlève son entré du disque.
DeleteFile(NomDuFichier);
Cette procédure retourne true si le fichier a été effacé avec succès.
On devrait demander confirmation avant d'effacer le fichier.
Trouver un fichier
Pour trouver un fichier, il existe 3 routines
- FindFirst
- FindNext
- FindClose
FindFirst: recherche la première occurrence du fichier dans le répertoire
et les attributs spécifiés.
FindNext: recherche la prochaine occurrence du fichier correspondant à
l'appel de Find First.
FindClose: Libère la mémoire allouée par les précédentes
routines.
On a avantage à utiliser la routine FileExists avec ces routines afin
d'éviter les erreurs si le fichier n'existe pas.
Lorsqu'on trouve le fichier, on peut vérifier les attributs de celui-ci
Constant |
Value |
Descrition |
faReadOnly |
$00000001 |
Lecture seulement |
faHidden |
$00000002 |
Fichier caché |
faSysFile |
$00000004 |
Fichier système |
faVolumeID |
$00000008 |
Numéro de volume |
faDirectory |
$00000010 |
Répertoire |
faArchive |
$00000020 |
Archive |
faAnyFile |
$0000003F |
N'importe quel fichier |
Modifier les propriétés d'un fichier
Changer l'attribut d'un fichier, nécessite 3 opérations
- Lecture
- Changement
- Configuration
On utilise la fonction FileGetAttr afin d'obtenir les attributs du fichier
Attr := FileGetAttr(txtNomFic.Text);
On modifie ses attributs en ajoutant ou en diminuant son nombre
AttrsChoisie:=AttrsChoisie+ fahidden;
On affecte les changements attribut au fichier
FileSetAttr(txtNomFic.Text, AttrsChoisie);
Le code source d'un programme permettant de modifier les attributs d'un fichier
est disponible
ici
Les types de fichiers en entrée/sortie
Lecture Ce type de fichiers comporte du texte tout simplement. L'utilisation
d'une variable du type TextFile est nécessaire pour l'emploi d'un fichier
texte. Il y a 4 étapes à la manipulation d'un fichier.
var
Fic:Textfile; //1. Déclaration
begin
AssignFile(Fic,'c:\autoexec.bat'); //2. Assignation
//ou
System.Assign(Fic,'c:\autoexec.bat');
//3. Ouverture du fichier
reset(Fic); //en lecture
rewrite(Fic); //en ecrire
Append(Fic); //en ajout
CloseFile(Fic); //4.fermeture du fichier
//ou
System.Close(Fic);
end;
Lecture d'un fichier texte
On utilise la procédure ReadLn pour la lecture d'un fichier texte,
elle lie fichier, ligne par ligne.
var
car:string;
begin
readln( Fic, car);
end;
Étant donné qu'un fichier n'est pas infini, on doit vérifier s'il
n'est pas rendu en fin de fichier.
while not Eof(Fic) do
readln( Fic, car);
Finalement l'ouverture d'un fichier se ferait ainsi
var
Fic:textfile;
car:string;
begin
AssignFile( Fic, 'c:\autoexec.bat');
reset(Fic);
try
while not Eof(Fic) do
readln(Fic,car);
finally
closefile(Fic);
end;
Écriture
L'écriture dans un fichier texte se fait par l'emploi de la méthode rewrite.
var
Fic:textfile;
car:string;
begin
assignfile(Fic,car);
rewrite(Fic);
Writeln(Fic,'Bienvenue dans le monde fabuleux de Delphi ');
Writeln(Fic,'Vous venez d'écrire dans un fichier texte, bravo');
closefile(fic);
end;
Les fichiers binaires
Nous utiliserons la classe TFileStream pour faciliter la manipulation
des fichiers binaires. Cette classe offre de multiples fonctionnalités
aux niveaux des entrées-sorties
Création et ouverture de fichier
Valeur |
Description |
fmCreate |
Ouvre le fichier en écriture, s'il existe |
fmOpenRead |
Ouvre le fichier en lecteur seulement |
fmOpenWrite |
Ouvre le fichier en écriture seulement |
fmOpenReadWrite |
Ouvre le fichier pour le modifier |
Nous déclarons une variable de type TFileStream
var
fs: TFileStream;
Crée une instance(variable) de TFileStream
fs := TFileStream.create('c:\test.txt',fmCreate or fmOpenWrite');
Après ces deux opérations, nous pouvons écrire et lire dans le fichier
Boite de dialogue
Windows fournit plusieurs boîtes de dialogue que n'importe qu'elle programmeur
peut aisément incorporer dans ses programmes. Nous allons nous attarder
à celles utilisées pour ouvrir et sauvegarder un fichier.
La méthode exécutée
On doit utiliser la méthode exécutée pour utiliser une boîte de dialogue,
cette méthode permet de créer et d'afficher la boîte de dialogue
If openDialog1.Execute then
Ouverture d'un fichier
L'ouverture d'un fichier se fait en employant la propriété filename
If openDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Ces deux lignes de code affectent le contenu d'un fichier choisi à un mémo
La sauvegarde d'un fichier se ferait par
If saveDialog1.Execute then
Memo1.Lines.savetoFile(saveDialog1.FileName);
Ces deux lignes de code sauvegardent le contenu du mémo dans un fichier.
Propriété de Topendialog et Tsavedialog
Voici quelques propriétés de ces composants
Title
Donne le titre de la boîte de dialogue
opendialog1.Title:='Ouverture';
Filter
Extension de fichier admis pour ouvrir ou sauvegarder un fichier
savedialog1.Filter:='Text files (*.txt)|*.TXT|Pascal files (*.pas)|*.PAS';
InitialDir
Change le répertoire courant pour celui spécifié
savedialog1.InitialDir:='c:\';
Toutes les propriétés de ces composants peuvent être modifiées en mode
création en sélectionnant le composant et en allant dans les propriétés qui nous
intéressent dans l'inspecteur d'objet
Code source disponible
ici.