Articles de Delphi

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: 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

Le code source d'un programme permettant de rechercher certains types de fichier est disponible ici

Modifier les propriétés d'un fichier

Changer l'attribut d'un fichier, nécessite 3 opérations

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

Article écrit par: Marc Collin


Page valide XHTML 1 Strict