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