Difference between revisions of "FindAllFiles/fr"
(Created page with "{{FindAllFiles}} Unité: Lazarus fileutil (remplacements UTF-8 pour le code de la RTL et gestion des fichier/répertoire additionnelle). Voir aussi : * http:...") |
m (Fixed syntax highlighting) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{FindAllFiles}} | {{FindAllFiles}} | ||
− | Unité: Lazarus [[ | + | Unité: Lazarus [[LazFileUtils/fr|LazFileUtils]] (adaptation en UTF-8 du code de la RTL et gestion des fichier/répertoire additionnelle). |
Voir aussi : | Voir aussi : | ||
* http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/findallfiles.html | * http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/findallfiles.html | ||
* http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/tfilesearcher.html | * http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/tfilesearcher.html | ||
− | + | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
+ | procedure FindAllFiles(AList: TStrings; const SearchPath: String; | ||
+ | SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory); | ||
+ | |||
function FindAllFiles(const SearchPath: String; SearchMask: String = ''; | function FindAllFiles(const SearchPath: String; SearchMask: String = ''; | ||
SearchSubDirs: Boolean = True): TStringList; | SearchSubDirs: Boolean = True): TStringList; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | '''findallfiles''' recherche les fichiers correspondants au masque de recherche dans le dossier SearchPath et ses sous-dossiers si spécifié, puis | + | '''findallfiles''' recherche les fichiers correspondants au masque de recherche dans le dossier SearchPath et ses sous-dossiers si spécifié, puis remplit une StringList avec les noms de fichier résultants. |
Le masque peut être un masque simple comme vous pouvez l'utiliser avec les fonctions FindFirst/FindNext, ou il peut consister en une liste de masques, séparés par le point-virgule (;).<br> | Le masque peut être un masque simple comme vous pouvez l'utiliser avec les fonctions FindFirst/FindNext, ou il peut consister en une liste de masques, séparés par le point-virgule (;).<br> | ||
Les espaces dans le masque sont traités comme des litéraux. | Les espaces dans le masque sont traités comme des litéraux. | ||
+ | |||
+ | Il y a deux versions surchargées de cette routine. La première est une procédure et suppose que que la StringList passées en paramètre a déjà été créée. La seconde est une fonction qui crée la StringList en interne et la retourne comme retour de fonction. Dans les deux cas, la StringList doit être détruite par la procédure appelante. | ||
Exemple: | Exemple: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
uses | uses | ||
... | ... | ||
− | + | LazFileUtils | |
... | ... | ||
var | var | ||
Line 29: | Line 34: | ||
PascalFiles := FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true); //find e.g. all pascal sourcefiles | PascalFiles := FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true); //find e.g. all pascal sourcefiles | ||
try | try | ||
− | + | ShowMessage(Format('Found %d Pascal source files',[PascalFiles.Count])); | |
finally | finally | ||
PascalFiles.Free; | PascalFiles.Free; | ||
end; | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '''IMPORTANT NOTE:'''<br/> | ||
+ | La ''fonction'' "FindAllFiles" crée la StringList en interne. Cela peut sembler pratique à première vue, mais il est très facile de créer des ''fuites de mémoire'' de cette façon : | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
+ | // NE FAITES JAMAIS CELA !!!! - Il n'y a aucune façon de détruire la StringList crée par FindAllFiles. | ||
+ | Listbox1.Items.Assign(FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true)); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Note|Si vous voulez utiliser cette fonction dans des programmes en ligne de commande, ajouter une exigence de projet pour LCLBase, qui évitera de tirer toute la LCL.}} | {{Note|Si vous voulez utiliser cette fonction dans des programmes en ligne de commande, ajouter une exigence de projet pour LCLBase, qui évitera de tirer toute la LCL.}} | ||
− |
Revision as of 23:58, 15 February 2020
│
English (en) │
español (es) │
suomi (fi) │
français (fr) │
polski (pl) │
русский (ru) │
Unité: Lazarus LazFileUtils (adaptation en UTF-8 du code de la RTL et gestion des fichier/répertoire additionnelle).
Voir aussi :
- http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/findallfiles.html
- http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/tfilesearcher.html
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory);
function FindAllFiles(const SearchPath: String; SearchMask: String = '';
SearchSubDirs: Boolean = True): TStringList;
findallfiles recherche les fichiers correspondants au masque de recherche dans le dossier SearchPath et ses sous-dossiers si spécifié, puis remplit une StringList avec les noms de fichier résultants.
Le masque peut être un masque simple comme vous pouvez l'utiliser avec les fonctions FindFirst/FindNext, ou il peut consister en une liste de masques, séparés par le point-virgule (;).
Les espaces dans le masque sont traités comme des litéraux.
Il y a deux versions surchargées de cette routine. La première est une procédure et suppose que que la StringList passées en paramètre a déjà été créée. La seconde est une fonction qui crée la StringList en interne et la retourne comme retour de fonction. Dans les deux cas, la StringList doit être détruite par la procédure appelante.
Exemple:
uses
...
LazFileUtils
...
var
PascalFiles: TStringList;
begin
//No need to create the stringlist; the function does that for you
PascalFiles := FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true); //find e.g. all pascal sourcefiles
try
ShowMessage(Format('Found %d Pascal source files',[PascalFiles.Count]));
finally
PascalFiles.Free;
end;
IMPORTANT NOTE:
La fonction "FindAllFiles" crée la StringList en interne. Cela peut sembler pratique à première vue, mais il est très facile de créer des fuites de mémoire de cette façon :
// NE FAITES JAMAIS CELA !!!! - Il n'y a aucune façon de détruire la StringList crée par FindAllFiles.
Listbox1.Items.Assign(FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true));