- 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;
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;