Diverses fonctions et procédures Delphi

- Dernière MAJ 09-08-2000
- Sur cette page j'ai regroupé quelques fonctions et procédures diverses. Il s'agit de bouts de code extraits de mes applications. En général cela correspond à une petite fonction pratique. Par exemple, la premiere procédure est l'équivalent de la commande "Dir" du "Dos".

- Procedure Dir
- Fonction FindAndReplaceAll (Obsolète dans D5 et suivant. Utiliser StringReplace)

 

- Procedure Dir :
- Cette procédure lit et stocke le contenu d'un dossier dans une TStringList. Les Jockers sont acceptés. De même il est possible de choisir les attributs des fichiers à lister. Cette procédure est un bon exemple de l'utilisation de FindFirst & FindNext. Qui doit parfois poser problème au vu du nombre de post sur nzn.delphi concernant ce sujet .
- Il faut que Sysutils et Classes figure dans la clause Uses de l'unité où se trouve cette procedure.
- Important : La TStringList doit être créée avant l'appel de la procédure.

{ Equivalent de la commande Dir }
 procedure Dir(FileName: String; Attr: Integer; ListDir: TStrings);
 var 
  SearchRec: TSearchRec;
 begin 
   ListDir.Clear;
   if FindFirst(FileName, Attr, SearchRec) = 0 then begin 
     ListDir.Add(ExtractFilePath(FileName) + SearchRec.Name);
     While FindNext(SearchRec) = 0 do 
       ListDir.Add(ExtractFilePath(FileName) + SearchRec.Name);
     FindClose(SearchRec);
   end;
 end;


Exemple d'utilisation :

Procedure TForm1.ListeLeDossierWinSystem;
var 
  MaListe: TStringList;
begin 
  MaListe := TStringList.Create;
  Try
    Dir('C:\Windows\system\*.dll', faAnyfile, MaListe); // Liste les DLL du dossier System 
    {* Ici on peut faire ce qu'on veut du contenu de MaListe *}
  Finally
    MaListe.Free;
  end;
end;





- Remplacer toutes les occurences d'une sous chaine dans une chaine:
- (Obsolète dans D5 et suivant. Utiliser StringReplace)
- Pour remplacer toute les occurences d'une sous chaine dans une chaine, utilisez FindAndRelaceAll. Cette fonction utilise FindAndReplace qui remplace uniquement la première occurence de la sous chaine.

function FindAndReplace(Chaine, FromValue, ToValue: String): String; var P: Integer; begin P := Pos(FromValue, Chaine); if P <> 0 then begin Delete(Chaine, P, Length(FromValue)); Insert(ToValue, Chaine, P); end; Result := Chaine; end; function FindAndReplaceAll(Chaine, FromValue, ToValue: String): String; begin Result := Chaine; While Pos(FromValue, Result) <> 0 do Result := FindAndReplace(Result, FromValue, ToValue); end;

Retour à l'accueil