Difference between revisions of "FindAllFiles/fr"

From Lazarus wiki
Jump to navigationJump to search
(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 [[fileutil/fr|fileutil]] (remplacements UTF-8 pour le code de la RTL et gestion des fichier/répertoire additionnelle).
+
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
<br>
+
 
<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 retourne une StringList avec les noms de fichier résultants.
+
'''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  
 
...
 
...
fileutil
+
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]));
+
     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.}}
<br>
 

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 :

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));
Light bulb  Remarque: 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.