FINDFIRST |
Trouve le premier |
---|---|
Delphi/Kylix/Lazarus | SysUtils |
Syntaxe
Function FindFirst(Const Path:String; Attr:Integer; Var F:TSearchRec):Integer; |
Paramètres
Nom | Description | ||
---|---|---|---|
Path | Ce paramètre permet d'indiquer le nom du/des fichier(s) à rechercher | ||
Attr | Ce paramètre permet d'indiquer l'attribut de recherche : | ||
Constante | Valeur | Description | |
faReadOnly | $00000001 | Cette constante permet d'indiquer l'attribut de lecture seulement | |
faHidden | $00000002 | Cette constante permet d'indiquer l'attribut caché | |
faSysFile | $00000004 | Cette constante permet d'indiquer l'attribut système | |
faVolumeID | $00000008 | Cette constante permet d'indiquer l'attribut de nom d'unité disque | |
faDirectory | $00000010 | Cette constante permet d'indiquer l'attribut de nom de répertoire | |
faArchive | $00000020 | Cette constante permet d'indiquer l'attribut d'archive | |
faAnyFile | $0000003F | Cette constante permet d'indiquer l'attribut de n'importe quel fichier | |
F | Ce paramètre permet d'indiquer l'enregistrement contenant le résultat de la recherche |
Description
Cette fonction permet d'effectuer une rechercher d'élément dans un répertoire contenant des fichiers et répertoires.
Remarques
- Entre le Turbo Pascal 7 et l'hypothétique Turbo Pascal 8, finalement devenu Delphi, l'écart était trop grand ! Ainsi, cette fonctionnalité ne se situe plus dans l'unité DOS ou WinDOS mais dans l'unité SysUtils. De plus, la procédure devient une fonction et s'adaptera mieux aux réalités d'utilisation en indiquant immédiatement le résultat de la recherche plutôt que de devoir appeler une fonction supplémentaire pour en connaitre le résultat.
- Il a été choisis délibérément de sortir cette fonction de l'unité DOS et WinDOS afin qu'elle soit mit dans une unité à la perception plus universelle (SysUtils, soit textuellement des utilitaires pour les systèmes d'exploitation). Ainsi, il devenait concevable que le code source fonctionne sous d'autres systèmes d'exploitation sans que la nomenclature porte à confusion. De plus, des compilateurs concurrents comme Free Pascal, bien que supportant à titre de compatibilité l'unité DOS, préconisent eux-mêmes l'utilisation de cette fonction dans cette unité plutôt que celle de DOS.
Exemple
Voici un permettant de tester la présence de trois fichiers :
- Program FindFirstSamples;
-
- {$APPTYPE CONSOLE}
- Uses SysUtils;
-
- Function FileExist(Const Name:String):Boolean;
- Var
- Rec:TSearchRec;
- Begin
- FileExist:=FindFirst(Name,faArchive,Rec) = 0;
- FindClose(Rec);
- End;
-
- BEGIN
- Write('Le fichier C:\windows\system32\drivers\etc\hosts');
- If FileExist('C:\windows\system32\drivers\etc\hosts')Then WriteLn(' existe')
- Else WriteLn(' n''existe pas');
- Write('Le fichier C:\config.sys');
- If FileExist('C:\config.sys')Then WriteLn(' existe')
- Else WriteLn(' n''existe pas');
- Write('Le fichier C:\gladir.txt');
- If FileExist('C:\gladir.txt')Then WriteLn(' existe')
- Else WriteLn(' n''existe pas');
- END.
on obtiendra le résultat semblable suivant :
Le fichier C:\windows\system32\drivers\etc\hosts existeLe fichier C:\config.sys existe
Le fichier C:\gladir.txt n'existe pas
Voir également
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - FileSearch
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - FindClose
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - FindNext
Langage de programmation - Delphi/Kylix/Lazarus - Type de données élémentaires - TSearchRec
Dernière mise à jour : Vendredi, le 29 août 2014