====== Jouer avec les noms de fichiers (Pascal/Delphi/Lazarus) ======
''Application.ExeName'' donne le nom de fichier du programme qui s’exécute. (ex:**C:\truc\machin.exe**)
===== Tests =====
Tester si le fichier existe avec ''FileExists'' ([[https://www.freepascal.org/docs-html/rtl/sysutils/fileexists.html|FileExists]])
===== Extension =====
Changer l'extension d'un fichier avec ''ChangeFileExt''
Le code ci-dessous récupére le nom du fichier du programme qui s'execute et change son extension avec ''.ini''. Ne pas oublier le point dans les paramètres
vFN:=Application.ExeName;
vFN:=ChangeFileExt(vFN,'.ini');
[[https://www.freepascal.org/docs-html/rtl/sysutils/changefileext.html|ChangeFileExt]]
===== Répértoire =====
ExtractFileDir et ExtractFilePath
ExtractFilePath contient le \ final, contrairement a ExtractFileDir.
// le fichier MarkerList.json sera dans le méme repertoire que l'application
vFilename := ExtractFilePath(Application.ExeName) + 'MarkerList.json';
vSL := TStringList.Create;
try
vSL.Text := GetAsJSON;
vSL.SaveToFile(vFilename);
finally
vSL.Free;
end;
===== Exemple =====
Uses sysutils;
Procedure Testit(F : String);
begin
Writeln ('FileName : ',F);
Writeln ('Has Name : ',ExtractFileName(F));
Writeln ('Has Path : ',ExtractFilePath(F));
Writeln ('Has Extension : ',ExtractFileExt(F));
Writeln ('Has Directory : ',ExtractFileDir(F));
Writeln ('Has Drive : ',ExtractFileDrive(F));
end;
Begin
Testit (Paramstr(0));
Testit ('/usr/local/bin/mysqld');
Testit ('c:\pp\bin\win32\ppc386.exe');
Testit ('/pp/bin/win32/ppc386.exe');
End.
===== Chercher =====
==== Chercher un executable ====
* Rechercher un executable dans une suite de dossiers :\\ [[https://www.freepascal.org/docs-html/rtl/sysutils/exesearch.html]]
===== Sources et Ressources =====
* [[https://www.freepascal.org/docs-html/rtl/sysutils/extractfiledir.html]]
* [[https://www.freepascal.org/docs-html/rtl/sysutils/getcurrentdir.html]]