FindFirst |
Recherche le premier |
---|---|
HighSpeed Pascal | DOS |
Syntaxe
Procedure FindFirst(Path:String;Attr:Byte;var S:SearchRec); |
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 | |
DeleteFlag | $0001 | Cette constante permet d'indiquer une suppression autorisée. | |
ExecuteFlag | $0002 | Cette constante permet d'indiquer une exécution autorisée. | |
WriteFlag | $0004 | Cette constante permet d'indiquer une écriture autorisée. | |
ReadFlag | $0008 | Cette constante permet d'indiquer une lecture autorisée. | |
Archive | $0010 | Cette constante permet d'indiquer un drapeau de copie de sauvegarde. | |
PureFlag | $0020 | Cette constante permet d'indiquer un programme résidentiel. | |
ScriptFlag | $0040 | Cette constante permet de fixer le fichier Script. | |
InfoFlag | $0100 | Cette constante permet de fixer le fichier .info. | |
VolumeID | $0200 | Cette constante permet d'indiquer le premier fichier dans chaque répertoire. | |
Directory | $0400 | Cette constante permet d'indiquer un répertoire. | |
AnyFile | $0FFF | Cette constante permet d'indiquer un drapeau de n'importe quel type de fichier. | |
S | Ce paramètre permet d'indiquer l'enregistrement contenant le résultat de la recherche |
Description
Cette procédure permet de rechercher le premier occurrence (fichier ou répertoire) contenu dans un répertoire de fichier spécifié.
Remarques
- La procédure FindFirst recherche dans un répertoire la première entrée correspondant à une spécification de fichier et à un ensemble d'attributs spécifiés.
- Le paramètre Path est un chemin d'accès à un répertoire sur un unité de disque spécifié. Le chemin d'accès se compose d'un nom de répertoire, étant facultatif, et d'une spécification de fichier.
- Il existe deux sortes de caractères génériques, supporté par le HighSpeed Pascal pouvant être utilisés, ceux d'AmigaDOS et ceux MS-DOS. Les caractères génériques AmigaDOS sont plus généraux avec «#», «?», «\» et les intervalles entre les parenthèses «(» et «)» sont prises en charge. Les caractères génériques MS-DOS sont limités à «*» et «?». Le caractère «?» signifie que n'importe quel caractère peut remplacer le nom de fichier et «*» signifie une séquence de n'importe quel nombre de caractères. Naturellement, la variante MS-DOS a l'avantage de faciliter le déplacement des programmes vers et depuis Turbo Pascal sur le IBM PC et Highspeed Pascal sur l'Atari ST.
- Par défaut, les conventions AmigaDOS sont utilisées sur le micro-ordinateur Amiga,
mais vous pouvez les modifier en caractères génériques MS-DOS en utilisant :
PatternProc=@MsDosPattern ;
et revenir à la norme AmigaDOS en utilisant :
PatternProc=@ADosPattern ;
- Le paramètre Attr spécifie les fichiers spéciaux à rechercher (en plus de tous les fichiers normaux).
- Les attributs de fichier sont déclarés dans l'unité DOS comme ceci :
- Après un appel à FindFirst, la variable DosError doit être vérifiée. S'il n'est pas 0, le contenu du paramètre S sera corrompu. Après avoir trouvé le premier fichier à l'aide de cette procédure, vous pouvez rechercher les fichiers suivants à l'aide de FindNext. Si vous ne lisez pas l'intégralité du répertoire jusqu'à ce qu'il n'y ait plus de fichiers trouvés, vous devez appeler StopFindFirst lorsque vous avez fini de lire le répertoire.
- La procédure StopFindFirst n'est pas utilisé sous MS-DOS ou sur Atari ST mais est requis sur Amiga pour garantir que le verrou AmigaDOS utilisé pour lire le répertoire est libéré. Si vous lisez un répertoire à sa fin en utilisant FindNext, comme dans 95% des utilisations de ces procédures, vous n'avez pas besoin d'appeler StopFindFirst car le verrou sera libéré automatiquement.
Const
DeleteFlag=$0001;
ExecuteFlag=$0002;
WriteFlag=$0004;
ReadFlag=$0008;
Archive=$0010;
PureFlag=$0020;
ScriptFlag=$0040;
InfoFlag=$0100;
VolumeID=$0200;
Directory=$0400;
AnyFile=$0FFF;
Au retour, FindFirst place le résultat de la recherche dans la variable S. Le paramètre S est du type SearchRec, étant déclaré dans l'unité DOS également :
Type
SearchRec=RECORD
Lock:Longint;
Attr:Integer;
Size:Longint;
Time:PackedTime;
Name:NameStr;
Reserved:tFilelnfoBlock;
ResAttr:Integer;
ResPattern:NameStr;
END;
Exemple
L'exemple suivant permet de lire le répertoire :
Dernière mise à jour : Lundi, le 20 avril 2020